3

我按照文章 http://www.madirish.net/214,生成的服务器证书为

ssl-ca=server.csr

ssl-cert=server.cert

ssl-key=server.key

客户端证书为 ssl-ca=client.csr

ssl-cert=client.cert

当我尝试连接 mysql 客户端时,我得到以下结果:

[root@smit mysql-cert]# mysql -uroot -padmin --ssl-ca=/etc/ssl/mysql-cert/client.csr --ssl-cert=/etc/ssl/mysql-cert/client.cert --ssl-key=/etc/ssl/mysql-cert/server.key

警告:在命令行界面上使用密码可能不安全。

ERROR 2026 (HY000):SSL 连接错误:ASN:其他签名确认错误

我从远程机器尝试了相同的命令并得到了以下错误

ERROR 2026 (HY000): SSL connection error 帮我解决这个问题。

4

2 回答 2

2

正如 Charley 所指出的,我认为 .csr 文件是错误的——我在尝试关注同一篇文章时遇到了同样的问题(并且遇到了同样的错误)。我按照这篇文章(https://dev.mysql.com/doc/refman/5.0/en/creating-ssl-certs.html)生成密钥和证书,并且有效。要点:

# Create CA certificate
shell> openssl genrsa 2048 > ca-key.pem
shell> openssl req -new -x509 -nodes -days 3600 \
     -key ca-key.pem -out ca-cert.pem

# Create server certificate, remove passphrase, and sign it
# server-cert.pem = public key, server-key.pem = private key
shell> openssl req -newkey rsa:2048 -days 3600 \
     -nodes -keyout server-key.pem -out server-req.pem
shell> openssl rsa -in server-key.pem -out server-key.pem
shell> openssl x509 -req -in server-req.pem -days 3600 \
     -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

# Create client certificate, remove passphrase, and sign it
# client-cert.pem = public key, client-key.pem = private key
shell> openssl req -newkey rsa:2048 -days 3600 \
     -nodes -keyout client-key.pem -out client-req.pem
shell> openssl rsa -in client-key.pem -out client-key.pem
shell> openssl x509 -req -in client-req.pem -days 3600 \
     -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

然后 ca-cert.pem 两边都是 ssl-ca,服务器获取 ssl-cert 和 ssl-key 的 server-[key/cert].pem,客户端获取客户端的。

于 2014-02-07T07:52:11.970 回答
1

对于以前运行良好的一组证书和客户端/服务器环境,我遇到了同样的错误签名错误。我假设在我没有考虑的环境中一定发生了一些变化,因为文件和使用它们的方法都是相同的。在浪费了很多时间之后,我发现 CA 已经过期了!生成证书时,我一定是不小心弄乱了过期设置。在一个理想的世界中,这个错误消息会说一些更有意义的东西,但是因为它没有 - 如果你遇到这个模糊的错误,这里有几个重要的(明显的)步骤:

尝试针对 CA 验证您的证书:

sudo openssl verify -CAfile [CA PATH] [CERT PATH]

尝试将 CA 视为文本:

sudo openssl x509 -in [CA PATH] -text -noout
于 2018-05-28T15:45:01.460 回答