mysql --ssl-verify-server-cert=true 正在返回 "SSL certificate validation failure"
mysql --ssl-verify-server-cert=true is returning "SSL certificate validation failure"
通过尝试在 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 验证命令正在返回:
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,使用不同的通用名称作为 ca.pem 的 Node1,client-[= 的 Node2 36=],服务器节点 3-cert.pem
在启动期间将参数加载到 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
我猜测使用由受信任的第三方验证的正确证书我不应该出现此错误,但我需要验证它是否适用于自签名证书。
我 运行 不知道如何让它工作。有人遇到过类似的问题吗?
在我的例子中(对于自签名证书)解决方案是:
- 不需要将ca.pem添加到受信任的根证书
- 需要设置服务器的CN-cert.pem作为mysqlserverhostname
- 确保从您的客户端解析 mysqlserverhostname
- 将
-h IP.IP.IP.IP -u USER -p
替换为-h mysqlserverhostname -u USER -p
我的错误是遵循了 Mysql doc 的说明,其中引用 "To generate test files, you can press Enter to all prompts" 似乎不正确 我不得不将服务器的 CN-cert.pem 设置为mysqlserverhostname 来解决这个问题。
通过尝试在 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 验证命令正在返回:
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,使用不同的通用名称作为 ca.pem 的 Node1,client-[= 的 Node2 36=],服务器节点 3-cert.pem
在启动期间将参数加载到 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
我猜测使用由受信任的第三方验证的正确证书我不应该出现此错误,但我需要验证它是否适用于自签名证书。
我 运行 不知道如何让它工作。有人遇到过类似的问题吗?
在我的例子中(对于自签名证书)解决方案是:
- 不需要将ca.pem添加到受信任的根证书
- 需要设置服务器的CN-cert.pem作为mysqlserverhostname
- 确保从您的客户端解析 mysqlserverhostname
- 将
-h IP.IP.IP.IP -u USER -p
替换为-h mysqlserverhostname -u USER -p
我的错误是遵循了 Mysql doc 的说明,其中引用 "To generate test files, you can press Enter to all prompts" 似乎不正确 我不得不将服务器的 CN-cert.pem 设置为mysqlserverhostname 来解决这个问题。