【发布时间】:2017-07-17 14:32:12
【问题描述】:
我最近在 Web 服务器上禁用了 TLS 1.0 和 TLS 1.1,但这似乎对我正在运行的一些 PHP 站点造成了一些问题。
有问题的错误是:“[Microsoft][ODBC Driver 11 for SQL Server]客户端不支持加密。”但是我有其他站点在同一台服务器上运行在 TLS 1.2 上,我什至还有其他基于 PHP 的站点仍然能够连接到数据库,尽管它们是 PHP 的早期版本(5.3.28,我认为它甚至可能在 TLS 之前添加了 1.2 支持.. 考虑到服务器现在仅限于 TLS 1.2,因此不确定它们如何仍然正常工作)。
无论如何,我已经对此进行了一段时间的故障排除,如果有任何新的想法可以尝试,我将不胜感激。
附加信息:
服务器:Windows Server 2012 R2 Standard (IIS 8)
PHP 版本:7.0.17
卷曲版本:7.47.1
SSL 版本:OpenSSL/1.0.2h
OPENSSL_VERSION_NUMBER:1000208f
过去,相同的站点能够连接到数据库,只是显然不是通过 TLS 1.2
如果我可以在此处提供任何其他有用的信息,请告诉我,我会更新主题。
谢谢。
【问题讨论】:
-
所以你的服务器配置使用加密而客户端没有?
-
在这种情况下,Web 服务器是“客户端”,而数据库是“服务器”。 Web 服务器仅启用了 TLS 1.2,并且可以连接到各种站点上的数据库,但不能连接到运行 PHP 7.0.17 的站点。在“加密”方面,我现在唯一的猜测是我一定缺少一些 SQL Server 驱动程序,但如果是这样的话,其他站点可以完美连接到数据库似乎很奇怪。
标签: php sql-server iis tls1.2 php-openssl