使用PEM证书对WSDL请求进行身份验证。
$cert = '/etc/.../cert.pem';
$client = new SoapClient('https://somesservice.com/service.asmx?WSDL',
array( "cache_wsdl" => WSDL_CACHE_NONE,
"local_cert" => $cert));
I getting failed to load external entity错误。如果我尝试get wsdl by curl
curl --key /etc/.../cert.key --cert /etc/.../cert.pem "https://somesservice.com/service.asmx?WSDL"
it works fine
编辑:或者我的PEM证书必须有私钥部分?
我认为您应该发送证书的内容,如:
$cert = '/etc/.../cert.pem';
$client = new SoapClient('https://somesservice.com/service.asmx?WSDL',
array(
"cache_wsdl" => WSDL_CACHE_NONE,
"local_cert" => file_get_contents($cert),
)
);
我必须将密钥文件的内容复制到我的PEM文件证书中,所以正确的答案是:"是的,PEM文件必须包含私钥部分"