2013-07-29 3 views
0

XML 피드를 SSL 서버에서 호스트되는 REST 서비스에 문자열로 보내려고합니다. 저는 문자 그대로 클라이언트를 위해 지난 몇 개월 동안이 문제를 해결하기 위해 머리말을 붙였습니다. 그들은 자신의 시스템 내에서나 외부에서 작동한다고 말했기 때문에 걱정거리가 있다면 서버 나 스크립트가되어야합니다.cURL SSL 요청 실패

이것은 PHP 스크립트입니다.

<?php 

    $endURI  = 'https://****.****.com/Service.svc/CreateProject'; 

    function curlRequest($uri, $data = false) 
    { 
     $ch = curl_init(); 

     //curl_setopt($ch, CURLOPT_HEADER, true); 
     curl_setopt($ch, CURLINFO_HEADER_OUT, true); 
     curl_setopt($ch, CURLOPT_VERBOSE, true); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

     curl_setopt($ch, CURLOPT_URL, $uri); 

     if($data) 
     { 
      curl_setopt($ch, CURLOPT_POST, true); 
      curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
     } 

     $response = curl_exec($ch); 

     if($response) 
     { 
      echo $response; 
     } 
     else 
     { 
      echo 'Error Code (' . curl_errno($ch) . '): ' . curl_error($ch); 
      echo '<pre>'; 
      var_dump(curl_getinfo($ch)); 
      echo '</pre>'; 
     } 

     curl_close($ch); 
    } 

    if($_POST['data']) 
    { 
     curlRequest($endURI, simplexml_load_string($_POST['data'])); 
    } 

?> 

오류가 반환되는 것은별로 도움이되지 않지만 오류의 컨텍스트로 인해 결국 문제가 될 것이라고 확신합니다.

The server encountered an error processing the request. See server logs for more details. 

나는 도움이 될 경우를 대비해 XML 파일도 나열 하겠지만 의심 스럽습니다. 그것은 테스트 데이터이므로 민감하지 않습니다.

<?xml version="1.0" encoding="utf-8"?> 
<CreateProjectRequest> 
    <RequestHeader> 
    <VendorKey>****</VendorKey> 
    <Password>****</Password> 
    <CorrelationID>****</CorrelationID> 
    <QoS>QoS1</QoS> 
    </RequestHeader> 
    <RequestBody> 
    <Project ClientID="ClientID1" SourceID="SourceID1"> 
     <ProjectName>ProjectName1</ProjectName> 
     <BusinessUnit>HPE (BE)</BusinessUnit> 
     <LegalEntity>LegalEntity1</LegalEntity> 
     <ProjectStart>1900-01-01</ProjectStart> 
     <ProjectEnd>1900-01-01</ProjectEnd> 
     <ProjectStatus>Active</ProjectStatus> 
     <ExpectedPaymentDatePeriod>Jan-Mar</ExpectedPaymentDatePeriod> 
     <ExpectedPaymentDateYear>2012</ExpectedPaymentDateYear> 
     <PaymentCurrency>EUR - Euro Member Countries</PaymentCurrency> 
     <SupportingSupplements>Yes</SupportingSupplements> 
     <Revisions>Yes</Revisions> 
     <ForeignLanguageTranslations>Yes</ForeignLanguageTranslations> 
     <NumberOfEditions>This and Subsequent Editions</NumberOfEditions> 
     <PromotionalUse>Right to Display in context Project/Title - All Media</PromotionalUse> 
     <Derivatives>Yes</Derivatives> 
     <DerivativeSubcategory>Abridgements</DerivativeSubcategory> 
     <DerivativeSubcategory>Adaptations</DerivativeSubcategory> 
     <DerivativeSubcategory>Brief Editions</DerivativeSubcategory> 
     <AllMedia>Yes</AllMedia> 
     <Print>Yes</Print> 
     <Digital>Yes</Digital> 
     <WorldRights>Yes</WorldRights> 
     <WorldRightsExcludingNAmerica>Yes</WorldRightsExcludingNAmerica> 
     <NonWorldRights>Yes</NonWorldRights> 
     <TerritoriesOthers>TerritoriesOthers1</TerritoriesOthers> 
     <LanguageAll>Yes</LanguageAll> 
     <LanguageOthers>LanguageOthers1</LanguageOthers> 
     <TitleList> 
     <Title ClientID="ClientID1" SourceID="SourceID1"> 
      <Title>Title1</Title> 
      <SeriesTitle>SeriesTitle1</SeriesTitle> 
      <Authors>Authors1</Authors> 
      <PubDate>1900-01-01</PubDate> 
      <EditionNo>EditionNo1</EditionNo> 
      <ContentType>Audio</ContentType> 
      <IdentifierType>ISBN 13</IdentifierType> 
      <Identifier>Identifier1</Identifier> 
     </Title> 
     <Title ClientID="ClientID2" SourceID="SourceID2"> 
      <Title>Title2</Title> 
      <SeriesTitle>SeriesTitle2</SeriesTitle> 
      <Authors>Authors2</Authors> 
      <PubDate>0001-01-01</PubDate> 
      <EditionNo>EditionNo2</EditionNo> 
      <ContentType>Book</ContentType> 
      <IdentifierType>Product Code</IdentifierType> 
      <Identifier>Identifier2</Identifier> 
     </Title> 
     <Title ClientID="ClientID3" SourceID="SourceID3"> 
      <Title>Title3</Title> 
      <SeriesTitle>SeriesTitle3</SeriesTitle> 
      <Authors>Authors3</Authors> 
      <PubDate>9999-12-31</PubDate> 
      <EditionNo>EditionNo3</EditionNo> 
      <ContentType>CD-ROM</ContentType> 
      <IdentifierType>ISBN 13</IdentifierType> 
      <Identifier>Identifier3</Identifier> 
     </Title> 
     </TitleList> 
     <AssetList> 
     <Asset ClientID="ClientID1" SourceID="SourceID1"> 
      <ContentClass>Audio</ContentClass> 
      <ContentType>Activity</ContentType> 
      <CaptionDesc>CaptionDesc1</CaptionDesc> 
      <SourceName>SourceName1</SourceName> 
      <SourceAssetID>SourceAssetID1</SourceAssetID> 
      <CreditLine>CreditLine1</CreditLine> 
      <PearsonReferenceNo>PearsonReferenceNo1</PearsonReferenceNo> 
      <PermissionEditor>PermissionEditor1</PermissionEditor> 
      <CopyrightName>CopyrightName1</CopyrightName> 
      <Placement>All</Placement> 
      <CurrencyCode>EUR - Euro Member Countries</CurrencyCode> 
      <Pricing>Pricing1</Pricing> 
      <PreviouslyClearedbyPearson>Yes</PreviouslyClearedbyPearson> 
      <PearsonProductIdentifier>PearsonProductIdentifier1</PearsonProductIdentifier> 
      <SubscriptionDeal>Yes</SubscriptionDeal> 
      <Ownership>Ownership1</Ownership> 
      <RightsClass>Pearson Wholly Owned</RightsClass> 
      <ReuseStatus>Re-use prohibited</ReuseStatus> 
      <LicenseExpDate>1900-01-01</LicenseExpDate> 
      <LocationRelease>Obtained</LocationRelease> 
      <PerformanceRelease>Obtained</PerformanceRelease> 
      <ModelRelease>Obtained</ModelRelease> 
      <RightsAsRequested>Yes</RightsAsRequested> 
      <FormatAsRequested>Yes</FormatAsRequested> 
      <TerritoriesAsRequested>Yes</TerritoriesAsRequested> 
      <LanguageAsRequested>Yes</LanguageAsRequested> 
      <SupportingSupplements>Yes</SupportingSupplements> 
      <Revisions>Yes</Revisions> 
      <ForeignLanguageTranslations>Yes</ForeignLanguageTranslations> 
      <NumberOfEditions>This and Subsequent Editions</NumberOfEditions> 
      <PromotionalUse>Right to Display in context Project/Title - All Media</PromotionalUse> 
      <Derivatives>Yes</Derivatives> 
      <DerivativeSubcategory>Abridgements</DerivativeSubcategory> 
      <DerivativeSubcategory>Adaptations</DerivativeSubcategory> 
      <DerivativeSubcategory>Brief Editions</DerivativeSubcategory> 
      <AllMedia>Yes</AllMedia> 
      <AllMediaQuantity>AllMediaQuantity1</AllMediaQuantity> 
      <Print>Yes</Print> 
      <PrintQuantity>PrintQuantity1</PrintQuantity> 
      <Digital>Yes</Digital> 
      <DigitalQuantity>DigitalQuantity1</DigitalQuantity> 
      <WorldRights>Yes</WorldRights> 
      <WorldRightsExcludingNAmerica>Yes</WorldRightsExcludingNAmerica> 
      <NonWorldRights>Yes</NonWorldRights> 
      <OtherTerritories>OtherTerritories1</OtherTerritories> 
      <AllLanguages>Yes</AllLanguages> 
      <OtherLanguages>OtherLanguages1</OtherLanguages> 
      <RightsRestrictions>RightsRestrictions1</RightsRestrictions> 
      <GeneralComments>GeneralComments1</GeneralComments> 
      <PermissionCleared>Yes</PermissionCleared> 
      <TitleReferences> 
      <TitleRef ClientID="ClientID1" /> 
      <TitleRef ClientID="ClientID2" /> 
      <TitleRef ClientID="ClientID3" /> 
      </TitleReferences> 
     </Asset> 
     <Asset ClientID="ClientID2" SourceID="SourceID2"> 
      <ContentClass>Image</ContentClass> 
      <ContentType>Advertisement</ContentType> 
      <CaptionDesc>CaptionDesc2</CaptionDesc> 
      <SourceName>SourceName2</SourceName> 
      <SourceAssetID>SourceAssetID2</SourceAssetID> 
      <CreditLine>CreditLine2</CreditLine> 
      <PearsonReferenceNo>PearsonReferenceNo2</PearsonReferenceNo> 
      <PermissionEditor>PermissionEditor2</PermissionEditor> 
      <CopyrightName>CopyrightName2</CopyrightName> 
      <Placement>Cover</Placement> 
      <CurrencyCode>HKD - Hong Kong Dollar</CurrencyCode> 
      <Pricing>Pricing2</Pricing> 
      <PreviouslyClearedbyPearson>No</PreviouslyClearedbyPearson> 
      <PearsonProductIdentifier>PearsonProductIdentifier2</PearsonProductIdentifier> 
      <SubscriptionDeal>No</SubscriptionDeal> 
      <Ownership>Ownership2</Ownership> 
      <RightsClass>Rights Manged</RightsClass> 
      <ReuseStatus>Re-use permitted with clearance</ReuseStatus> 
      <LicenseExpDate>0001-01-01</LicenseExpDate> 
      <LocationRelease>Not Obtained</LocationRelease> 
      <PerformanceRelease>Not Obtained</PerformanceRelease> 
      <ModelRelease>Not Obtained</ModelRelease> 
      <RightsAsRequested>No</RightsAsRequested> 
      <FormatAsRequested>No</FormatAsRequested> 
      <TerritoriesAsRequested>No</TerritoriesAsRequested> 
      <LanguageAsRequested>No</LanguageAsRequested> 
      <SupportingSupplements>No</SupportingSupplements> 
      <Revisions>No</Revisions> 
      <ForeignLanguageTranslations>No</ForeignLanguageTranslations> 
      <NumberOfEditions>This Edition only</NumberOfEditions> 
      <PromotionalUse>Right to Display in context Project/Title - Digitial</PromotionalUse> 
      <Derivatives>No</Derivatives> 
      <DerivativeSubcategory>Custom Versions</DerivativeSubcategory> 
      <DerivativeSubcategory>Split Editions</DerivativeSubcategory> 
      <DerivativeSubcategory>Versions</DerivativeSubcategory> 
      <AllMedia>No</AllMedia> 
      <AllMediaQuantity>AllMediaQuantity2</AllMediaQuantity> 
      <Print>No</Print> 
      <PrintQuantity>PrintQuantity2</PrintQuantity> 
      <Digital>No</Digital> 
      <DigitalQuantity>DigitalQuantity2</DigitalQuantity> 
      <WorldRights>No</WorldRights> 
      <WorldRightsExcludingNAmerica>No</WorldRightsExcludingNAmerica> 
      <NonWorldRights>No</NonWorldRights> 
      <OtherTerritories>OtherTerritories2</OtherTerritories> 
      <AllLanguages>No</AllLanguages> 
      <OtherLanguages>OtherLanguages2</OtherLanguages> 
      <RightsRestrictions>RightsRestrictions2</RightsRestrictions> 
      <GeneralComments>GeneralComments2</GeneralComments> 
      <PermissionCleared>No</PermissionCleared> 
      <TitleReferences> 
      <TitleRef ClientID="ClientID4" /> 
      <TitleRef ClientID="ClientID5" /> 
      <TitleRef ClientID="ClientID6" /> 
      </TitleReferences> 
     </Asset> 
     <Asset ClientID="ClientID3" SourceID="SourceID3"> 
      <ContentClass>Text</ContentClass> 
      <ContentType>Appendices</ContentType> 
      <CaptionDesc>CaptionDesc3</CaptionDesc> 
      <SourceName>SourceName3</SourceName> 
      <SourceAssetID>SourceAssetID3</SourceAssetID> 
      <CreditLine>CreditLine3</CreditLine> 
      <PearsonReferenceNo>PearsonReferenceNo3</PearsonReferenceNo> 
      <PermissionEditor>PermissionEditor3</PermissionEditor> 
      <CopyrightName>CopyrightName3</CopyrightName> 
      <Placement>Electronic</Placement> 
      <CurrencyCode>ZAR - South African rand</CurrencyCode> 
      <Pricing>Pricing3</Pricing> 
      <PreviouslyClearedbyPearson>Yes</PreviouslyClearedbyPearson> 
      <PearsonProductIdentifier>PearsonProductIdentifier3</PearsonProductIdentifier> 
      <SubscriptionDeal>Yes</SubscriptionDeal> 
      <Ownership>Ownership3</Ownership> 
      <RightsClass>Royalty Free</RightsClass> 
      <ReuseStatus>Re-use prohibited</ReuseStatus> 
      <LicenseExpDate>9999-12-31</LicenseExpDate> 
      <LocationRelease>Not Applicable</LocationRelease> 
      <PerformanceRelease>Not Applicable</PerformanceRelease> 
      <ModelRelease>Not Applicable</ModelRelease> 
      <RightsAsRequested>Yes</RightsAsRequested> 
      <FormatAsRequested>Yes</FormatAsRequested> 
      <TerritoriesAsRequested>Yes</TerritoriesAsRequested> 
      <LanguageAsRequested>Yes</LanguageAsRequested> 
      <SupportingSupplements>Yes</SupportingSupplements> 
      <Revisions>Yes</Revisions> 
      <ForeignLanguageTranslations>Yes</ForeignLanguageTranslations> 
      <NumberOfEditions>This and Subsequent Editions</NumberOfEditions> 
      <PromotionalUse>Right to Display in context Project/Title - Print</PromotionalUse> 
      <Derivatives>Yes</Derivatives> 
      <DerivativeSubcategory>Abridgements</DerivativeSubcategory> 
      <DerivativeSubcategory>Adaptations</DerivativeSubcategory> 
      <DerivativeSubcategory>Brief Editions</DerivativeSubcategory> 
      <AllMedia>Yes</AllMedia> 
      <AllMediaQuantity>AllMediaQuantity3</AllMediaQuantity> 
      <Print>Yes</Print> 
      <PrintQuantity>PrintQuantity3</PrintQuantity> 
      <Digital>Yes</Digital> 
      <DigitalQuantity>DigitalQuantity3</DigitalQuantity> 
      <WorldRights>Yes</WorldRights> 
      <WorldRightsExcludingNAmerica>Yes</WorldRightsExcludingNAmerica> 
      <NonWorldRights>Yes</NonWorldRights> 
      <OtherTerritories>OtherTerritories3</OtherTerritories> 
      <AllLanguages>Yes</AllLanguages> 
      <OtherLanguages>OtherLanguages3</OtherLanguages> 
      <RightsRestrictions>RightsRestrictions3</RightsRestrictions> 
      <GeneralComments>GeneralComments3</GeneralComments> 
      <PermissionCleared>Yes</PermissionCleared> 
      <TitleReferences> 
      <TitleRef ClientID="ClientID7" /> 
      <TitleRef ClientID="ClientID8" /> 
      <TitleRef ClientID="ClientID9" /> 
      </TitleReferences> 
     </Asset> 
     </AssetList> 
    </Project> 
    </RequestBody> 
</CreateProjectRequest> 

누구든지이 문제를 해결할 수 있다면 너무 감사 할 것입니다.

+0

다른 방법으로이 문제를 공격하려 했습니까? 예 : _with_ SSL 확인? 권위 번들과 함께 CURLOPT_CAINFO를 사용한다는 의미입니다. –

+0

옵션 일 수 있습니다. 내일 고용주에게 말을 걸어서 그가 직장을 가질 수 있는지 알아봐야 할 것입니다. 그러나 최후의 수단이되고 싶습니다. –

+0

사실, CA 번들은 무료로 다운로드 할 수 있습니다. 이는 SSL 인증서 (예 : VeriSign)에 서명하고 배포 할 수있는 신뢰할 수있는 조직의 인증 기관 (CA) 인증서 번들입니다. 웹 브라우징 중에는 브라우저가 이미 이러한 CA 인증서가 내장 된 상태로 검사하고 있으므로이 경우 CA 번들을 다운로드해야합니다. 브라우저를 통해 서비스를 호출 할 수 있으면 번들에 필요한 CA 인증서를 확인할 수 있습니다. –

답변

0

가장 마지막으로 발생하는 오류입니다. 코드에 기반한 컬 오류가 발생하면 오류가 앞에 붙습니다. echo 'Error Code ('. curl_errno ($ ch). ') :'. curl_error ($ ch);

그러나 잘못된 요청을 보내고 계십니까? 나는이 문구를 잡아 내고 출석과 수신 XML을 모두 로그 파일/db에 기록하여주의를 끌었다.

+0

나는 이것이 사실일지도 모른다라고 생각했다. 그러나 그들은 요청이 정확하다라고 우리에게 보증했다. 그리고 그것은 일해야한다. 그들은 또한 서비스를 사용하는 다른 클라이언트를 가지고 있고 그것들을 위해 잘 작동합니다. 나는 우리와 그들과의 의사 소통에 오류가 있다고 생각한다. 발신 및 수신 통신을 모니터링하고 로깅하는 방법은 무엇입니까? –

+0

그들이 말한 것과 관련된 문제점은 오류를 생성 할 코드가 없다는 점입니다. 그 성명서에 대한 인터넷 검색 후, 나는 그것이 오류 또는 .NET 응용 프로그램이나 IIS에서 생산되는 것을 볼 수 있습니다. (http://salvoz.com/blog/2011/02/18/where-are-the-server-logs/). 나는 PHP로 작성하고 있기 때문에 상점은 사용하지 않고 있다고 가정합니다. 유효한 XML 반환 페이로드에 대한 확인을 수행합니다. XML 구문 분석에 실패하면 $ data, $ response 및 $ error ($ error = curl_error ($ ch))를 날짜/시간과 함께 서버의 일반 텍스트 파일에 씁니다. – kwolfe