php 使用客户端证书调用 soap 函数
php calling soap function using client certificate
我在调用 soap 函数时遇到问题。我收到错误 "Could not connect to host"。我正在使用 "wamp server"、"php version 5.3.13" 和 "apache version 2.2.22"。
我有 .p12 格式的客户端证书,本地系统上可用的 wsdl 文件,我已经使用 soapUI-m-snapshot 测试了 soap 调用。它工作正常!但是当我尝试使用 php "SoapClient" 得到 "Could not connect to host" 时。
我正在使用以下肥皂选项
$soapclient_options = array();
$soapclient_options['cache_wsdl'] = 'WSDL_CACHE_NONE';
$soapclient_options['local_cert'] = $certificatePath;
$soapclient_options['passphrase'] = $api_certificate_passphrase;
$soapclient_options['trace'] = true;
$soapclient_options['connection_timeout'] = 15;
$soapclient_options['ssl_method'] = 'SOAP_SSL_METHOD_SSLv3';
$soapclient_options['location'] = 'api location';
$client = new SoapClient($wsdl_path, $soapclient_options);
$client->__setLocation($soapclient_options['location']);
我是不是做错了什么?
有人请给我建议,非常感谢。
PHP Soap 客户端只接受 pem 证书。您可以使用以下方式转换您的证书:
openssl pkcs12 -in in.p12 -out out.pem -nodes -clcerts
需要额外的代码才能与 PHP 5.6 版本一起使用。
$soapclient_options['stream_context'] = stream_context_create(
array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
)
)
);
我在调用 soap 函数时遇到问题。我收到错误 "Could not connect to host"。我正在使用 "wamp server"、"php version 5.3.13" 和 "apache version 2.2.22"。
我有 .p12 格式的客户端证书,本地系统上可用的 wsdl 文件,我已经使用 soapUI-m-snapshot 测试了 soap 调用。它工作正常!但是当我尝试使用 php "SoapClient" 得到 "Could not connect to host" 时。 我正在使用以下肥皂选项
$soapclient_options = array();
$soapclient_options['cache_wsdl'] = 'WSDL_CACHE_NONE';
$soapclient_options['local_cert'] = $certificatePath;
$soapclient_options['passphrase'] = $api_certificate_passphrase;
$soapclient_options['trace'] = true;
$soapclient_options['connection_timeout'] = 15;
$soapclient_options['ssl_method'] = 'SOAP_SSL_METHOD_SSLv3';
$soapclient_options['location'] = 'api location';
$client = new SoapClient($wsdl_path, $soapclient_options);
$client->__setLocation($soapclient_options['location']);
我是不是做错了什么? 有人请给我建议,非常感谢。
PHP Soap 客户端只接受 pem 证书。您可以使用以下方式转换您的证书:
openssl pkcs12 -in in.p12 -out out.pem -nodes -clcerts
需要额外的代码才能与 PHP 5.6 版本一起使用。
$soapclient_options['stream_context'] = stream_context_create(
array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
)
)
);