使用TLS1.2的PHP SOAP通信

使用TLS1.2的PHP SOAP通信,php,web-services,soap,tls1.2,ups,Php,Web Services,Soap,Tls1.2,Ups,我们已在我们的网站中集成了UPS Web服务。最近我们收到UPS的警报: 自2016年1月26日起生效,UPS测试环境将要求 TLS 1.2安全协议,并将可用于您的系统 测试 自2016年5月31日起生效,UPS将需要TLS 1.2安全协议 在生产中。在该日期之后,提交给 使用旧协议(TLS 1.1或更早)的UPS将失败 我的问题是: 有没有任何方法可以使用TLS与PHP SOAP通信?我已经在谷歌上搜索了很多,但还没有找到任何解决方案 请告诉我我也遇到了这个问题。我用它来强制TLS通信 $mo

我们已在我们的网站中集成了UPS Web服务。最近我们收到UPS的警报:

自2016年1月26日起生效,UPS测试环境将要求 TLS 1.2安全协议,并将可用于您的系统 测试

自2016年5月31日起生效,UPS将需要TLS 1.2安全协议 在生产中。在该日期之后,提交给 使用旧协议(TLS 1.1或更早)的UPS将失败

我的问题是:

有没有任何方法可以使用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 witch包含一个不支持TLS1.2的openssl版本

最后我得到了这个问题的解决方案。它需要OpenSSL>1.0.1或更高版本 NSS>3.15,在我的例子中,我们的服务器支持SSL版本是NSS/3.19.1 基本ECC,因此无需更改任何代码


。当我打印$client->u getLastRequestHeaders()时$客户端->u getLastResponseHeaders();使用stream_上下文和不使用stream_上下文都打印相同的结果。如何使用tsl1检查正在调用的请求。2协议?