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

phpMyAdmin配置SSL CA后无法连接IPv6环境下的MariaDB服务器问题咨询

问题根因

该问题核心为SSL证书匹配规则导致:你之前签发的MariaDB服务端SSL证书的**使用者备用名称(SAN, Subject Alternative Name)**字段仅包含旧的IPv4地址,未加入新的IPv6地址。当phpMyAdmin通过IPv6连接时,开启ssl_ca验证会校验服务端证书与访问地址的匹配性,匹配失败就会抛出连接错误,注释ssl_ca相当于关闭了服务端证书合法性校验,所以能连接但会出现未使用CA认证的警告。

修复步骤

  • 第一步:先验证证书匹配问题
    在phpMyAdmin所在服务器执行以下命令,确认是否为证书校验失败:
openssl s_client -connect [你的MariaDB IPv6地址]:3306 -starttls mysql -CAfile /path/to/你的ca-cert.pem

如果返回结果包含Verify return code: 20 (unable to get local issuer certificate)或hostname mismatch,即可确认是证书匹配问题。

  • 第二步:重新生成带IPv6地址的MariaDB服务端证书
    创建证书配置文件san.cnf,示例内容如下,按需修改对应字段:
[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn

[dn]
C = CN
ST = 省份
L = 城市
O = 组织名
CN = MariaDB服务标识

[req_ext]
subjectAltName = @alt_names

[alt_names]
IP.1 = 原有IPv4地址(可选,保留兼容IPv4访问)
IP.2 = 新的IPv6地址

使用该配置文件生成服务端证书请求,再用原有CA根证书签发新的服务端证书。

  • 第三步:替换证书并重启服务
    将新生成的服务端证书、密钥替换到MariaDB服务器的对应存储路径,重启MariaDB服务使配置生效。

  • 第四步:恢复phpMyAdmin配置
    取消config.inc.php中ssl_ca配置行的注释,如需可以额外添加两行校验配置增强安全性:

$cfg['Servers'][$i]['ssl'] = true;
$cfg['Servers'][$i]['ssl_ca'] = '/..../ca-cert.pem';
$cfg['Servers'][$i]['ssl_verify'] = true;
$cfg['Servers'][$i]['ssl_allow_invalid_cert'] = false;

兼容方案(如证书生成后仍不生效)

你环境中使用的mysqlnd 5.0.12-dev版本存在IPv6地址证书匹配的已知bug,如上述步骤未解决问题,可通过域名映射绕开IP匹配限制:

  1. 在phpMyAdmin所在服务器的/etc/hosts中添加记录,将自定义域名指向MariaDB的IPv6地址
  2. 重新生成服务端证书,在SAN字段中添加该自定义域名
  3. 修改phpMyAdmin的host配置为该自定义域名即可正常走CA校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:36:02