【问题标题】:How do I know which SSL version is used by SoapClient in php?我如何知道 SoapClient 在 php 中使用哪个 SSL 版本?
【发布时间】:2015-03-18 05:26:32
【问题描述】:

我们通过 SOAP 与服务集成,我们使用 SoapClient。 由于POODLE ssl3 vulnerability 服务提供商将在这些服务器上禁用 SSLv3。

我找不到任何关于 SoapClient 在 PHP 中使用哪个 SSL 版本的有用信息。 我也不明白如何在 SoapClient 和 PHPssl_method)。

似乎 PHP 5.3 和 SoapClient 指定 SSL 版本的唯一方法是使用streaming context for ssl。据我了解,我可以指定ciphers list,但这对我来说是黑水。我如何知道使用哪些密码来确保客户端不想通过 SSLv3 执行请求?

总而言之,我真的应该担心吗?告诉客户端使用哪个 SSL 版本似乎是服务器的责任,不是吗?而且如果我过去没有指定确切的(3)版本,我们的服务提供商关闭 SSLv3 不会影响我们吗?

【问题讨论】:

  • @BurhanKhalid,注册的流套接字传输:tcp、udp、unix、udg、ssl、sslv3、sslv2、tls。那么,它将使用哪一个? :)

标签: php ssl soap-client handshake sslv3


【解决方案1】:

您将 SSL library 与 SSLv3 a cipher 混淆了。 PHP 使用的库是为您的系统构建或打包时可用的库。您可以从php_info() 或类似命令中找出具体是哪个版本。

要禁用 SSLv3(密码),只需使用 TLSv1 作为密码。为此,请将可选的 options array 传递给 SoapClient 构造函数:

ssl_method 选项是 SOAP_SSL_METHOD_TLS 之一, SOAP_SSL_METHOD_SSLv2、SOAP_SSL_METHOD_SSLv3 或 SOAP_SSL_METHOD_SSLv23。

在这里你可以使用SOAP_SSL_METHOD_TLS

【讨论】:

  • 我会,是的,如果我的 PHP 版本是 5.5+ :) 我有 5.3.29 跨十几台服务器、大量依赖项等。我的意思是,我不能切换到 5.5现在
  • 据我了解,SSL 握手可以解决问题,我的 PHP 编译时支持 ssl、sslv3、sslv2 和 tls,所以客户端会初始化事务,它会说它可以使用哪些传输方法使用并且服务器将使用证书和它支持的方法列表进行响应,因此客户端和服务器都可以就传输问题进行协商。我的想法正确吗?
猜你喜欢
  • 2021-03-25
  • 2011-05-15
  • 1970-01-01
  • 2017-10-09
  • 1970-01-01
  • 2014-01-25
  • 2020-07-26
  • 1970-01-01
  • 2016-02-19
相关资源
最近更新 更多