我有一个使用CN =*.mydomain.com从rapidssl发出的通配符证书.我有一个Web服务器和一个mysql数据库服务器.证书适用于网站访问.现在我想为我的应用程序启用ssl到mysql.我已经在mysql服务器中启用了ssl而没有问题:
+---------------+---------------------------------+
| Variable_name | Value |
+---------------+---------------------------------+
| have_openssl | YES |
| have_ssl | YES |
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用client/ssl进行连接时,我得到:ERROR 2026(HY000):SSL连接错误:错误:00000001:lib(0):func(0):reason(1)
这似乎在此处记录:http: //dev.mysql.com/doc/refman/5.5/en/creating-ssl-certs.html
它说我不能使用相同的CN作为证书.我不明白如何使用通配符证书.这是否意味着我还必须为mysql连接购买主机特定的证书?
我不太使用SSL,所以我发现很难弄清楚应该如何设置它.任何指针,甚至是明显的指针,都可能在这个阶段提供帮助.
运行:mysql Ver 15.1 Distrib 5.5.32-MariaDB,用于debian-linux-gnu(x86_64),使用readline 5.1 ubuntu 12.04
确保使用为该选项提供的ca-cert 的绝对路径--ssl-ca
.
相对路径或shell扩展(如~
)将无法生效ERROR 2026 (HY000): SSL connection error: ASN: bad other signature confirmation
.
在mysql
手册页或MySQL手册的SSL命令选项中(http://download.nust.na/pub6/mysql/doc/refman/5.1/en/ssl-),我无法在任何地方记录这一点.options.html).
小智 6
我有一个类似的问题,显然是从我读过的所有MySQL社区版的二进制(预编译)版本(可能同样适用于MariaDB),与yaSSL捆绑在一起而不是openSSL存在一些来自该库的限制和限制.根据mysql的手册(https://dev.mysql.com/doc/refman/5.6/en/secure-connection-options.html)
"yaSSL不会查找任何目录,也不会遵循链式证书树.yaSSL要求CA证书树的所有组件都包含在单个CA证书树中,并且文件中的每个证书都具有唯一的SubjectName值.围绕此yaSSL限制,将包含证书树的各个证书文件连接到一个新文件中,并将该文件指定为--ssl-ca选项的值".
如果你想检查你的MySQL安装是否使用yaSSL或openSSL,你可以按照这个论坛中的步骤(http://mysqlblog.fivefarmers.com/2013/05/14/how-to-tell-whether-mysql-server- uses-yassl-or-openssl /).它告诉我看到状态变量'Rsa_public_key','show status like'%rsa%'如果您的MySQL安装带有yaSSL,结果必须为空,因为在使用yaSSL的发行版中不存在这样的变量.
其他可能的原因是服务器上的主机名与服务器证书的主题(--ssl-cert参数的参数)不匹配,因此比较命令的输出
shell> hostname
使用服务器证书中的DNS主题,您可以使用下一个命令获取它(查看"X509v3主题备用名称:"部分):
shell> openssl x509 -in "your-server-certificate" -noout -text
如果没有这项工作你可以看到下一页http://milcom.us/2012/11/02/encrypted-mysql-connections/
PS:英语不是我的母语,对任何语法错误都很抱歉
我遇到以下错误:
[root@example ~]$ mysql
ERROR 2026 (HY000): SSL connection error
Run Code Online (Sandbox Code Playgroud)
对我有用的FIX:证书中的服务器和客户端"Common Name"必须与CA不同.更改CN后,错误停止; 我验证了连接状态:
mysql> status;
...
SSL: Cipher in use is DHE-RSA-AES256-SHA
...
Run Code Online (Sandbox Code Playgroud)
资源:
"重要无论您使用哪种方法生成证书和密钥文件,用于服务器和客户端证书/密钥的公用名称值都必须与用于CA证书的公用名称值不同.否则,证书和密钥文件将不会为使用OpenSSL编译的服务器工作."
http://dev.mysql.com/doc/refman/5.0/en/creating-ssl-certs.html
PS:我没有使用通配符证书和/或第三方CA,我正在创建自己的签名证书,这对我来说很合适:http://angelcool.net/sphpblog/comments.php?y = 14&m = 05&条目= entry140511-164525