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

Ubuntu服务器使用自签名证书配置MariaDB SSL连接报2026错如何解决

问题排查与解决步骤

错误原因说明

你遇到的报错包含两个核心问题:服务端证书的公用名(CN)和客户端连接使用的地址不匹配、证书信任链校验失败,按照以下步骤逐一排查:


步骤1:校验服务端证书的CN配置

生成服务端证书时,openssl req交互阶段填写的Common Name必须和客户端连接时使用的主机名/IP完全一致,否则会触发名称不匹配报错。
执行以下命令查看服务端证书的CN值:

openssl x509 -in /etc/mysql/ssl/server-cert.pem -text -noout | grep "Subject:"

如果输出的CN字段和你连接MariaDB时用的地址不一致,重新生成服务端证书,填写正确的CN即可。

步骤2:验证证书信任链

确认客户端配置的ssl-ca文件就是签发服务端证书的CA证书,不要混用不同CA生成的文件。执行以下命令验证证书配对有效性:

# 验证服务端证书和CA是否匹配
openssl verify -CAfile /etc/mysql/ssl/ca-cert.pem /etc/mysql/ssl/server-cert.pem
# 验证客户端证书和CA是否匹配
openssl verify -CAfile /etc/mysql/ssl/ca-cert.pem /etc/mysql/ssl/client-cert.pem

命令返回ok表示证书配对正常,返回错误则需要重新签发对应证书。

步骤3:修正证书文件权限

证书文件权限配置错误也会触发校验失败:

  • 服务端server-key.pem权限必须为600,所属用户为mysql:
chmod 600 /etc/mysql/ssl/server-key.pem
chown mysql:mysql /etc/mysql/ssl/server-key.pem
  • 客户端的client-key.pem权限需设为600,保证执行mysql命令的用户可读所有客户端证书文件。

步骤4:临时测试(可选)

如果是内部网络环境,不需要严格校验证书名称,可以在50-client.cnf中添加以下配置关闭CN校验,降低安全等级实现连接:

ssl-verify-server-cert = 0

也可以在连接时临时加参数测试:

mysql -u 你的用户名 -p --ssl-verify-server-cert=0

如果能正常连接即可确认问题仅为证书CN不匹配。

步骤5:生效配置

所有修改完成后重启MariaDB服务:

systemctl restart mariadb

重新测试连接即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:45:02