簡體   English   中英

PHP使用客戶端證書調用Soap函數

[英]php calling soap function using client certificate

我在調用soap函數時遇到問題。 我收到錯誤消息“無法連接到主機”。 我正在使用“ wamp服務器”,“ php版本5.3.13”和“ apache版本2.2.22”。

我有.p12格式的客戶端證書,本地系統上有wsdl文件,我已經使用soapUI-m-snapshot測試了soap調用。 工作正常! 但是,當我用php“ SoapClient”嘗試相同時,得到“無法連接到主機”。 我正在使用以下肥皂選項

$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,
                )
            )
    );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM