Windows 上的 PHP / 支持的 TLS 版本?



我一直在网上搜索,但我找到的大部分信息都与Windows服务器上的PHP无关。

TL;DR - 对于 Windows 上的 PHP,哪些版本的 PHP 支持 TLS 1.2,是否有任何附加要求?(OpenSSL的版本?

我试图找出的是与PCI和网站开始仅使用TLS连接到PayPal,Authorize.NET 等服务的要求有关。

显然,Windows服务器本身必须启用TLS 1.2(并且禁用较旧的TLS/SSL),这意味着Server 2008 R2及更高版本,但我不知道PHP需要什么。

在线参考文献还提到了OpenSSL,这可能是支持TLS版本的一个因素。网上的一些文章说Windows默认没有安装openssl,但phpinfo告诉我正在使用openssl(SSL版本OpenSSL/0.9.8y)

注意:这个问题是从 https://www.experts-exchange.com/questions/28930112/PHP-on-Windows-supported-TLS-versions.html 提出的。我只是碰巧有完全相同的问题..

Expert's Exchange上的链接问题似乎也提供了一个答案:

看起来 PHP 中的 TLS 1.2 需要 openssl 1.0.1,而在 WIN 中,这看起来像是在 PHP 5.5 及更高版本中编译

这与我从 windows.php.net 下载构建的经验相符,尽管我还没有对特定的次要版本进行深入测试。

请注意,支持基于 PHP(或 PHP curl 扩展)构建的 OpenSSL 版本,不受 Windows 本身使用的库的影响。 因此,在支持 TLS 1.2 的 Windows 版本上运行 PHP 5.3(例如)不会在 PHP 中提供 TLS 1.2 支持。

显然,如果您要从源代码编译自己的PHP版本,那么答案将取决于您在执行构建时使用的OpenSSL和cURL库的版本,在这种情况下,PHP版本和TLS 1.2支持之间没有固有的联系。

但是,使用 windows.php.net 中预构建的二进制文件,PHP 5.5 是最低要求。

最新更新