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

如何在PHP中以VERIFY-IDENTITY模式连接MySQL服务器?

MySQL SSL模式与mysqli的对应实现

1. 不设MYSQLI_CLIENT_SSL标志时的模式

不指定这个标志的话,mysqli直接走明文连接,对应MySQL的DISABLED模式——完全不尝试SSL连接,全程未加密。

2. 单独用MYSQLI_CLIENT_SSL标志的行为

只加这个标志时,对应MySQL的REQUIRED模式:必须用SSL连接,要是SSL握手失败,直接连接报错,不会降级成明文。

3. 怎么实现VERIFY-CA和VERIFY-IDENTITY模式

想启用证书验证,得结合ssl_set()方法和标志控制:

  • VERIFY-CA模式:调用mysqli->ssl_set()时指定CA证书文件路径(参数顺序是key, cert, ca, capath, cipher,不需要的参数传null),同时不要加MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT标志。这时候mysqli会验证服务器证书是不是由你指定的CA签发的,验证不通过就连接失败。
  • VERIFY-IDENTITY模式:在VERIFY-CA的基础上,保证你连接的MySQL主机名,和服务器证书里的通用名称(CN)或主题备用名称(SAN)完全一致就行。mysqli会自动做这一步验证,不用额外加标志——只要开了CA验证且主机名匹配,就等同于MySQL的VERIFY-IDENTITY模式。

4. 关于PREFERRED模式

mysqli没有原生标志对应PREFERRED(优先试SSL,失败就降级明文)。要是需要这个逻辑,你可以先尝试带MYSQLI_CLIENT_SSL的连接,失败的话再重新发起不带该标志的明文连接,自己处理降级流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:45:32