我一直在网上搜索,但我发现的大部分信息与Windows服务器上的PHP无关。
TL; DR - 适用于Windows上的PHP,哪些版本的PHP支持TLS 1.2,是否有任何add'l要求? (openssl的版本?)
我想知道的是有关PCI和网站要求开始只使用TLS连接到PayPal,Authorize.NET等服务。
显然,Windows服务器本身必须启用TLS 1.2(并禁用较旧的TLS / SSL),这意味着Server 2008 R2及更高版本,但我不知道PHP需要什么。
在线参考资料还提到了OpenSSL,它可能是支持TLS版本的一个因素。一些在线文章说Windows默认没有安装openssl,但phpinfo告诉我正在使用openssl(SSL Version OpenSSL / 0.9.8y)
注意:此问题来自https://www.experts-exchange.com/questions/28930112/PHP-on-Windows-supported-TLS-versions.html。我碰巧遇到了完全相同的问题..
答案 0 :(得分:0)
专家交易平台上的链接问题似乎也提供了an answer:
PHP TLS 1.2似乎需要openssl 1.0.1,而Windows似乎是在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。