PHP 使用 TLS 1.2 的 SOAP 通信
PHP SOAP Communication Using TLS 1.2
我们在我们的站点中集成了 UPS 网络服务。最近我们收到了 UPS 的提醒:
Effective January 26, 2016,the UPS test environment will require the
TLS 1.2 security protocol, and willbe available for your system
testing.
Effective May 31, 2016,UPS will require the TLS 1.2 security protocol
in production. After that date,any communication requests submitted to
UPS using older protocols (TLS 1.1 orearlier) will fail.
我的问题是:
有什么方法可以使用 TLS 与 PHP SOAP 通信吗?我已经用谷歌搜索了很多但还找不到任何解决方案。
请推荐
我运行也遇到过这个问题。这是我用它来强制进行 TLS 通信的方法。
$mode = array(
'soap_version' => 'SOAP_1_1', // use soap 1.1 client
'trace' => 1,
'stream_context' => stream_context_create(
array(
'ssl' => array(
'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
)
)
)
);
// initialize soap client
$client = new SoapClient($this->wsdl, $mode);
我的 MAMP 开发环境总是有问题,其中包含一个不支持 TLS 1.2 的 openssl 版本。
Finally i got solution for this issue.It require OpenSSL > 1.0.1 or
NSS > 3.15 and in my case our server support SSL Version is NSS/3.19.1
Basic ECC so no need to change any code.
我们在我们的站点中集成了 UPS 网络服务。最近我们收到了 UPS 的提醒:
Effective January 26, 2016,the UPS test environment will require the TLS 1.2 security protocol, and willbe available for your system testing.
Effective May 31, 2016,UPS will require the TLS 1.2 security protocol in production. After that date,any communication requests submitted to UPS using older protocols (TLS 1.1 orearlier) will fail.
我的问题是:
有什么方法可以使用 TLS 与 PHP SOAP 通信吗?我已经用谷歌搜索了很多但还找不到任何解决方案。
请推荐
我运行也遇到过这个问题。这是我用它来强制进行 TLS 通信的方法。
$mode = array(
'soap_version' => 'SOAP_1_1', // use soap 1.1 client
'trace' => 1,
'stream_context' => stream_context_create(
array(
'ssl' => array(
'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
)
)
)
);
// initialize soap client
$client = new SoapClient($this->wsdl, $mode);
我的 MAMP 开发环境总是有问题,其中包含一个不支持 TLS 1.2 的 openssl 版本。
Finally i got solution for this issue.It require OpenSSL > 1.0.1 or NSS > 3.15 and in my case our server support SSL Version is NSS/3.19.1 Basic ECC so no need to change any code.