Php 无法加载外部实体SOAP SSL

Php 无法加载外部实体SOAP SSL,php,ssl,soap,wsdl,Php,Ssl,Soap,Wsdl,我使用PEM Certfact对WSDL请求进行身份验证 $cert = '/etc/.../cert.pem'; $client = new SoapClient('https://somesservice.com/service.asmx?WSDL', array( "cache_wsdl" => WSDL_CACHE_NONE, "local_cert" => $cert)); I无法加载外部实体错误。 如果我尝试通过curl获取wsdl curl --key /et

我使用PEM Certfact对WSDL请求进行身份验证

$cert = '/etc/.../cert.pem';
$client = new SoapClient('https://somesservice.com/service.asmx?WSDL', 
 array( "cache_wsdl" => WSDL_CACHE_NONE,
 "local_cert" => $cert));
I无法加载外部实体错误。 如果我尝试通过curl获取wsdl

 curl --key /etc/.../cert.key --cert /etc/.../cert.pem "https://somesservice.com/service.asmx?WSDL"
它很好用

编辑:
或者我的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),
    )
);

我认为您应该发送证书的内容,例如:

$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文件必须包含私钥部分”

我必须将密钥文件的内容复制到我的PEM文件证书中,所以正确答案是:“是的,PEM文件必须包含私钥部分”