使用TLS 1.2的PHP SOAP通信
我们已经在我们的网站中集成了UPS网络服务。最近我们从UPS得到了警告:使用TLS 1.2的PHP SOAP通信
有效的2016年1月26日,UPS的测试环境将需要 TLS 1.2安全协议,并为您的系统 测试将非常具有可用。
2016年5月31日起生效,UPS将要求生产中的TLS 1.2安全协议 。在此日期之后,使用旧协议(TLS 1.1或更高版本)提交给 UPS的任何通信请求都将失败。
我的问题是:
有没有办法使用TLS进行沟通PHP SOAP?我已经搜索了很多,但还找不到任何解决方案。
请建议
最后我得到这个issue.It解决方案需要的OpenSSL> 1.0.1或 NSS> 3.15,在我的情况下,我们的服务器都支持SSL版本是NSS/3.19.1 基本ECC因此无需改变任何码。
我也遇到过这个问题。我用这个来强制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);
但我一直有甲基苯丙胺巫婆的问题(在我的开发环境),包括不使用TLS 1.2支持OpenSSL版本。
让我试试........ –
当我打印 $ client - > __ getLastRequestHeaders(); $ client - > __ getLastResponseHeaders(); 与stream_context和没有stream_context都打印相同的结果 –
如何检查我们的请求正在使用tsl1调用。 2协议? –
[阅读本文](https://bugs.php.net/bug.php?id=65329&edit=1)。 –