诚恳求助:客户端如何SSL连接到服务器上?

kiwiskied 2007-08-23 02:40:02
我的服务器端已按要求支持SSL连接,但客户机怎么都连不上,步骤如下:
1.根据官方网站的说明安装SSL认证:
DIR=`pwd`/openssl
PRIV=$DIR/private
mkdir $DIR $PRIV $DIR/newcerts
cp /usr/share/ssl/openssl.cnf $DIR
replace ./demoCA $DIR -- $DIR/openssl.cnf
touch $DIR/index.txt
echo "01" > $DIR/serial

openssl req -new -x509 -keyout $PRIV/cakey.pem -out $DIR/cacert.pem -config $DIR/openssl.cnf

openssl req -new -keyout $DIR/server-key.pem -out $DIR/server-req.pem -days 3600 -config $DIR/openssl.cnf
openssl rsa -in $DIR/server-key.pem -out $DIR/server-key.pem
openssl ca -policy policy_anything -out $DIR/server-cert.pem -config $DIR/openssl.cnf -infiles $DIR/server-req.pem

openssl req -new -keyout $DIR/client-key.pem -out $DIR/client-req.pem -days 3600 -config $DIR/openssl.cnf
openssl rsa -in $DIR/client-key.pem -out $DIR/client-key.pem
openssl ca -policy policy_anything -out $DIR/client-cert.pem -config $DIR/openssl.cnf -infiles $DIR/client-req.pem

2.修改配置文件my.cnf,在[server]节点下加入
ssl-ca=$DIR/cacert.pem
ssl-cert=$DIR/server-cert.pem
ssl-key=$DIR/server-key.pem
在这里没在[client]节点下加上有关客户端的有关信息,因为如果这里加上好像所有客户端登录都需要SSL连接,这样我哪个用户都登录不上了。于是下面我只针对一个特定用户作了一下试验。

3.重启服务器,这时服务器通过输入正确的Pem phrase启动成功,经查询也的确支持SSL连接

4.在服务器上,用Grant命令要求对用户AA@localhost登录时使用SSL连接。执行命令如下:
grant all on *.* to AA@localhost require SSL(X509也试过)

5.然后在客户端登录,命令如下:(无密码)
mysql -uAA -hlocalhost --ssl-ca=/ccrun/mysql4/openssl/cacert.pem --ssl-cert =/ccrun/mysql4/openssl/client-cert.pem --ssl-key = /ccrun/mysql4/openssl/client-key.pem
说明:$DIR==/ccrun/mysql4/openssl

但就是这时总是报错,我试了很多方法都无法正确连上,错误如下
Error when connection to server using SSL:28791:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:632:Expecting: CERTIFICATE
28791:error:140AD009:SSL routines:SSL_CTX_use_certificate_file:PEM lib:ssl_rsa.c:534:
Unable to get certificate from '/ccrun/mysql4/openssl/client-cert.pem'
ERROR 2026 (HY000): SSL connection error

哪位高手能帮助指点一下吗?我是不是少做了哪个步骤或错做了哪个步骤呢?不胜感激!!
注:如果客户端不指定要SSL连接,所有登录都是可以正常工作的
...全文
977 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kiwiskied 2007-08-24
  • 打赏
  • 举报
回复
Hi ,yueliangdao0608,我估计是不是自己的客户端程序和服务端程序在同一台机器上造成的啊?Mysql的服务端和客户端都安装在Linux服务器上(假定名为Server1),然后我们平常使用数据库时在Windows机器上通过SSH Secure Shell终端登录到Linux上,然后其实执行的客户端程序就本身是Linux服务器上的客户端,我觉得是不是因为并不存在远程连接所以SSL连接就失败了?
懒得去死 2007-08-24
  • 打赏
  • 举报
回复
http://dev.mysql.com/doc/refman/5.1/zh/error-handling.html

根据这个错误再检查一下。
kiwiskied 2007-08-24
  • 打赏
  • 举报
回复
难道都没人用过SSL?加分了,100分求助!!!!!
kiwiskied 2007-08-23
  • 打赏
  • 举报
回复
现在的错误就剩下最后一句话了ERROR 2026 (HY000): SSL connection error
kiwiskied 2007-08-23
  • 打赏
  • 举报
回复
谢谢回复,但是在
http://www.secondlifeinsider.com/2007/08/10/cmp-certifiably-unable-to-get-linden-labs-name-right/这个链接里我怎么找不到我所需要的资料啊。
我估计问题还是在Mysql里,可能哪个开头没打开或设置有误啊,搜遍了所有资料也没找到一个连接实例,郁闷ing
懒得去死 2007-08-23
  • 打赏
  • 举报
回复
看一下这个:
http://www.secondlifeinsider.com/2007/08/10/cmp-certifiably-unable-to-get-linden-labs-name-right/
懒得去死 2007-08-23
  • 打赏
  • 举报
回复
Unable to get certificate from '/ccrun/mysql4/openssl/client-cert.pem'

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧