我试图build立从MySQL数据库命令行客户端到AWS上的MySQL数据库实例的encryption连接。
AWS提供了一个证书包,它似乎拥有所有服务器的所有证书。
MySQL文档创buildSSL证书和密钥使用OpenSSL说我需要这样做:
(1)创buildCA证书
openssl genrsa 2048 > ca-key.pem openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca.pem
(2)创build服务器证书,删除密码并签名。
server-cert.pem
=公钥
server-key.pem
=私钥
openssl req -newkey rsa:2048 -days 3600 \ -nodes -keyout server-key.pem -out server-req.pem openssl rsa -in server-key.pem -out server-key.pem openssl x509 -req -in server-req.pem -days 3600 \ -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
(3)创build客户端证书,删除密码并签名。
client-cert.pem
=公钥
client-key.pem
=私钥
openssl req -newkey rsa:2048 -days 3600 \ -nodes -keyout client-key.pem -out client-req.pem openssl rsa -in client-key.pem -out client-key.pem openssl x509 -req -in client-req.pem -days 3600 -CA ca.pem \ -CAkey ca-key.pem -set_serial 01 -out client-cert.pem openssl verify -CAfile ca.pem server-cert.pem client-cert.pem
我已经有ca.pem
(rds-combined-ca-bundle.pem)。
所以我必须跳过步骤(1)和(2)。
AWS捆绑包中有服务器公钥ca-key.pem
吗?
如果是这样,我如何使用它来完成步骤(3)?
AWS文档 – “对MySQL数据库实例的SSL支持”特别稀疏,只是说:
mysql -h myinstance.c9akciq32.rds-us-east-1.amazonaws.com -u my-user -p --ssl-ca=rds-combined-ca-bundle.pem --ssl-verify-server-cert
这应该提示我input密码,但只是挂起。
UPDATE
我已经build立了连接并为MySQL Workbench和Java JDBC连接池工作,并且telnet完整性testing显示MySQL服务器是可访问的。
您不需要自己生成任何SSL证书,只需在mysql
参数中使用提供的rds-combined-ca-bundle.pem
。
毕竟,这与证书无关。 一些绝望的search产生了答案: 从Cygwin连接到MySQL
Cygwin和Windows MySQL客户端不能一起玩。