You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取访问PHP网页的客户端所支持的加密套件列表?

获取客户端加密套件信息及解决SSL_CLIENT_CERT未定义问题

为什么$_SERVER中没有SSL_CLIENT_CERT等变量?

这些变量仅在Apache开启强制客户端证书验证的情况下才会被传递给PHP,默认配置下不会启用该验证,因此变量不存在。

获取当前连接使用的加密套件

如果只是想知道当前HTTPS连接实际使用的加密套件,无需额外配置,直接读取$_SERVER['SSL_CIPHER']即可:

echo $_SERVER['SSL_CIPHER'];

配置Apache以获取客户端证书信息(如SSL_CLIENT_CERT)

若确实需要获取客户端证书相关数据,需修改Apache的SSL配置文件(XAMPP中路径为apache/conf/extra/httpd-ssl.conf):

  1. 找到SSL配置块,添加或修改以下指令:
    # 开启客户端证书验证,可根据需求改为Optional(可选验证)
    SSLVerifyClient require
    # 设置证书验证深度
    SSLVerifyDepth 1
    # 指定信任的CA证书文件路径,需替换为实际路径
    SSLCACertificateFile "D:/xampp/apache/conf/ssl.crt/your-ca.crt"
    
  2. 重启Apache服务,之后客户端访问时会被要求提供证书,此时$_SERVER['SSL_CLIENT_CERT']、$_SERVER['SSL_CLIENT_CERT_CHAIN_0']等变量会被正常填充。

关于客户端支持的全部加密套件列表

服务器端无法直接获取客户端支持的所有加密套件列表——TLS握手时客户端会发送该列表,但Apache默认不会将其传递给PHP。若有特殊需求,需借助第三方工具或修改Apache模块,不过多数场景下仅需当前连接使用的加密套件即可满足需求。

内容的提问来源于stack exchange,提问作者MKSOI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 21:10:28