我有一个运行 MySQL 的 Amazon RDS 实例。我创建了一个用户账户,并将 MySQL 配置为要求所有登录到该账户的用户都使用 SSL。
我希望 MySQL 客户端能够对服务器进行身份验证,以确保不会发生中间人攻击。MySQL 命令行客户端有一个选项,即--ssl-verify-server-cert。但是,当我尝试时,我收到以下无意义的错误消息:
错误 2026 (HY000):SSL 连接错误
因此这个命令可以正常工作:
mysql --host $RDS_host --user $用户名 \ --密码=$密码 \ –ssl-ca mysql-ssl-ca-cert.pem -e'\s'
但如果我添加选项--ssl-verify-server-cert,我会收到我刚刚引用的错误消息。(顺便说一下,CA 文件是从 https://rds.amazonaws.com/doc/mysql-ssl-ca-cert.pem。
有没有什么方法可以让这个选项发挥作用?
从某种程度上来说,这个选择失败并不奇怪,因为 亚马逊文档(使用右侧框架) 声明如下:
Amazon RDS 中的 SSL 支持严格用于加密客户端和数据库实例之间的连接;不应依赖它来对服务器进行身份验证。
但是,从亚马逊的角度来看,我看不出有什么困难。在我看来,他们配置服务器以便我使用是相当容易的--ssl-verify-server-cert。