通过尝试在RHEL6上设置基于SSL的Mysql我在任何时候都要求mysql客户端验证自签名证书时遇到错误:
mysql --ssl-ca=/tmp/newcerts/ca.pem \
--ssl-cert=/tmp/newcerts/client-cert.pem \
--ssl-key=/tmp/newcerts/client-key.pem \
-h IP.IP.IP.IP -u USER -p \
--ssl-verify-server-cert=true
ERROR 2026 (HY000): SSL connection error: SSL certificate validation failure
在我设置的情况下 - ssl-verify-server-cert = false mysql不验证自签名证书并启动安全连接。
我已经使用Mysql HowTo文章创建了我的自签名证书:https://dev.mysql.com/doc/refman/5.6/en/creating-ssl-files-using-openssl.html并且openssl verify命令正在返回:
openssl verify -CAfile ca.pem server-cert.pem client-cert.pem
server-cert.pem: OK
client-cert.pem: OK
ca.pem& client-cert.pem& server-cert.pem创建时使用不同的公共名称作为节点1作为ca.pem,Node2作为client-cert.pem,Node3作为server-cert.pem
Param在启动时加载到Mysql中:
ssl-ca=/tmp/newcerts/ca.pem
ssl-cert=/tmp/newcerts/server-cert.pem
ssl-key=/tmp/newcerts/server-key.pem
然后我按照RHEL6的以下步骤将ca.pem添加到服务器:
update-ca-trust force-enable
cp /tmp/newcerts/ca.pem /etc/pki/ca-trust/source/anchors/
update-ca-trust extract
我猜测一个受信任的第三方验证的正确证书我不应该有这个错误,但我需要验证它是否可以使用自签名证书。
我没有想法让这个工作。有人已经遇到过类似的问题吗?
答案 0 :(得分:0)
就我而言(对于自签名证书),解决方案是:
-h IP.IP.IP.IP -u USER -p
替换为-h mysqlserverhostname -u USER -p
我的错误是遵循Mysql doc说明,其中引用“生成测试文件,您可以按Enter键进入所有提示”似乎不正确我必须设置服务器证书的CN。 pem作为mysqlserverhostname 来解决问题。