如何使用证书包设置 SSL 证书?

如何使用证书包设置 SSL 证书?

我正在尝试建立从 MySQL 数据库命令行客户端到 AWS 上的 MySQL 数据库实例的加密连接。

AWS 提供了一个证书包,其中似乎包含其所有服务器的所有证书。

MySQL 文档使用 OpenSSL 创建 SSL 证书和密钥说我需要这样做:

(1)创建CA证书

openssl genrsa 2048 > ca-key.pem

openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca.pem

(2)创建服务器证书,删除密码,并签名。

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)创建客户端证书,删除密码,并签名。

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从 AWS 获得了 (rds-combined-ca-bundle.pem)。

所以我必须跳过步骤(1)和(2)。

ca-key.pem我是否有AWS 捆绑包中的服务器公钥?

如果是的话,我该如何使用它来完成步骤(3)?

AWS 文档 - ‘MySQL DB 实例的 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

它应该提示我输入密码,但却挂起了。

更新

我已经为 MySQL Workbench 和 Java JDBC 连接池设置并运行连接,并且 telnet 健全性测试显示 MySQL 服务器可以访问。

答案1

您不需要自己生成任何 SSL 证书,只需按照文档所述使用提供的rds-combined-ca-bundle.pem参数mysql即可。

答案2

毕竟这与证书无关。经过一番绝望的搜索,我找到了答案:从 Cygwin 连接到 MySQL

Cygwin 和 Windows MySQL 客户端不能愉快地协同运行。

相关内容