PHP SoapClient,如何连接证书



i create new SoapClient

$this->soap = new SoapClient($this->wdls // WDLS with corect host
, [
    'exceptions' => 0,
    'trace' => TRUE,
    'local_cert' => $this->local_cert, // PEM file
    'passphrase' => $this->passphrase, // password for PEM
    'authentication' => SOAP_AUTHENTICATION_DIGEST,
    'ssl_method' => SOAP_SSL_METHOD_SSLv2,
    'cache_wsdl' => WSDL_CACHE_NONE,
    ]);
$this->soap->getInfo([...]);

但我收到错误:无法连接到主机

用 Firefox 测试了连接,我能够连接。可能是什么问题?

开始 - 是服务器上关闭的端口。 所以我无法访问远程服务器。毕竟TLS 1.2存在问题,内置的SOAP客户端不接受配置,它帮助我手动指定协议版本。

$this->soap = new SoapClient($this->wdls, [
    'exceptions' => 1,
    'trace' => TRUE,
    'local_cert' => $this->local_cert,
    'passphrase' => $this->passphrase,
    //'ssl_method' => SOAP_SSL_METHOD_SSLv2, // not work!
    'authentication' => SOAP_AUTHENTICATION_DIGEST,
    "soap_version"  => SOAP_1_2,
    'cache_wsdl' => WSDL_CACHE_NONE,
    'stream_context' => stream_context_create([
        'ssl' => [
            'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, // it's work!
        ]
    ]),
]);

最新更新