1

에 대한 인증서 체인 나는PHP : SOAP 요청

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:v="http://incometaxindiaefiling.gov.in/ws/ds/common/v_1_0"> 
<soapenv:Header/> 
<soapenv:Body> 
<v:DITWSAuthInfoEle> 
<v:userID>xxxxxxxxxx</v:userID> 
<v:password>xxxxxxxxxx</v:password> 
<v:certChain>xxxxxxxxxx</v:certChain> 
<v:signature>xxxxxxxxxx</v:signature> 
</v:DITWSAuthInfoEle> 
</soapenv:Body> 
</soapenv:Envelope> 

나는 인증 정보와 xyz.pfx 파일을 가지고, 아래와 같이 샘플 SOAP 요청 메시지를 가지고있다. 이 파일을 사용하여 XML 서명 표현을 얻었고이를 SOAP 요청에 추가했습니다. 여기에 내 질문은 어떻게 certChain (인증서 체인) 및 SOAP 요청에 추가하는 방법을 얻는 것입니다. 어느 누구도이 일을 도와 줄 수 있습니까? SoapClient를 사용

+0

당신이 도움이 될 해답을 발견하는 경우, 그것을 upvote에 기억. 그리고 귀하의 질문에 가장 잘 맞는 대답을 "확인"/ 선택하십시오. –

답변

1

는, 서버 인증서는 기본적으로 검증하고이 같은 클라이언트 인증서를 보낼 수 있습니다

$protected_url = "https://my-server/?wsdl"; 
$my_cert_file = "/my/path/to/mycert.pem"; 

$client = new SoapClient($protected_url, array('local_cert', $my_cert_file)); 

또는, 당신의 certfificate는 암호가 필요한 경우 : 다음

$client = new SoapClient("https://url.to.service/", array(
     'local_cert' => 'client_certificate.pem', 'passphrase' => 'PASSPHRASE', 
     'cache_wsdl' => WSDL_CACHE_NONE 
)); 

을 경우 xml을보고 싶다면 __getLastRequest

PH에서 인증서와 함께 SOAP을 사용하는 방법에 대한 자세한 대답을 확인하십시오. P :

Creating a PHP SOAP request with a certificate

+0

안녕하세요 elcodedocle 답장을 보내 주셔서 감사합니다. 그래서 당신은 그것을 말하고 있습니다. 새 SOAP 클라이언트를 만드는 동안 .pem 파일을 찾아야합니다. 그래서 여기에 또 다른 질문이 있습니다. .pem 파일 인증서를 얻으려면 어떻게해야합니까? .pfx 파일 만 있습니다. 매개 변수 란 무엇입니까? "certChain"및 "signature"(문제의 샘플 XML 요청에 있음)를 참조하고 어떻게받을 수 있습니까? 아무에게도 도움이 될 수 있습니까? – nkumarm

+0

openssl pkcs12 -in filename.pfx -clcerts -nokeys -out cert.pem – NotGaeL

+0

또는 키를 원하면 openssl pkcs12 -in filename.pfx -clcerts -nodes -out certandkeysunprotected.pem을 사용하십시오 (-nodes는 암호문 보호를 제거하고, 나는 믿는다.) – NotGaeL