MariaDB 10.3未发送CA证书导致客户端无法验证服务器的问题求助
各位大佬好,我遇到个MariaDB SSL证书的问题,折腾好几个小时了实在没辙,来求助大家。
我在Ubuntu 20.04.1系统上给MariaDB 10.3.34配置Let's Encrypt证书,目前只搞定了一部分:我创建了一个带REQUIRE SSL属性的用户,本地命令行连接完全正常,但从Ubuntu 22.x的远程机器用命令行连接时,直接报这个错:
ERROR 2026 (HY000): TLS/SSL error: unable to get local issuer certificate
先贴一下我当前MariaDB的SSL配置信息:
| ssl_ca | /etc/getssl/myserver/chain.crt |
| ssl_capath | |
| ssl_cert | /etc/getssl/myserver/myserver.crt |
| ssl_cipher | |
| ssl_crl | |
| ssl_crlpath | |
| ssl_key | /etc/getssl/myserver/myserver.key |
我用openssl s_client -starttls mysql -connect myserver:3306命令检查了服务器的SSL情况,发现服务器证书的CN是正确的,但输出里有两个关键问题:
No client certificate CA names sent
Verification error: unable to verify the first certificate
仔细排查后发现,问题根源应该是服务器没有发送链证书,导致客户端没法验证服务器证书的有效性。
我知道可以在每个客户端本地安装链证书来解决,但按我的理解,链证书应该是由服务器主动发送给客户端的吧?而且这个服务器要给好几个客户端用,每个客户端都去配置一遍实在太麻烦,所以优先想找服务器端的解决方案。
我已经谷歌搜了各种相关帖子,甚至问了Google Bard,得到的建议和搜到的内容都试过了,但还是没解决问题。有没有大佬遇到过类似情况,能给点思路吗?
备注:内容来源于stack exchange,提问作者Danny

