【发布时间】:2021-05-20 20:41:10
【问题描述】:
我们最近将服务器升级到 PHP 8,其中一台服务器缺少 $_SERVER['SSL_PROTOCOL'] 变量。
- 我在 php.net 上找不到对它的任何引用。
- 我知道有些变量是从系统的其他部分提取的,但我不熟悉 PHP 从何处获取此特定变量。
- 我使用引号运算符找到的所有搜索结果都只显示了不相关的数据。
- 我试图查看变量名称是否已更改为
TLS_PROTOCOL之类的名称,因为 SSL 已经不相关已有一段时间了。
我的目标是确保客户端使用 TLS 1.2 或 TLS 1.3,这是其中的关键组件。如何获取$_SERVER['SSL_PROTOCOL'] 或至少确定客户端通过 PHP 使用的网络加密类型的协议和协议版本?
【问题讨论】:
-
可能是个愚蠢的问题,但该服务器是否使用 Apache 提供 https 页面?
-
@SiebeJongebloed 这不是一个愚蠢的问题,我应该提到 Apache,是的。
-
“我的目标是确保客户端使用 TLS 1.2 或 TLS 1.3”你能不禁用 HTTP 服务器上的其他协议吗?
-
@miken32 是的,我已禁用 1.1 及更早版本:immuniweb.com/ssl/jabcreations.com/2pIGVaRM
-
那么这样的客户端将永远不会访问您的 PHP 代码。