如何使用MySQL .NET Connector中的SSL访问Amazon RDS上托管的MySQL数据库

时间:2014-02-17 14:56:01

标签: mysql .net ssl openssl amazon-rds

我的Amazon RDS MySQL数据库配置为通过SSL访问。

使用存储在https://rds.amazonaws.com/doc/mysql-ssl-ca-cert.pem和PHP的公钥,我可以成功地从我的开发机器连接到MySQL。使用相同的.PEM文件,我也可以使用MySQL Workbench成功连接。

现在我试图从.NET做同样的事情。 Windows不支持PEM格式的证书。我试图在Internet上关注几个资源,用Openssl生成一个PFX文件,但没有运气。

我还尝试使用this SSL converter导出为PFX格式。在线工具要求我没有私钥。我不明白为什么只要PHP通过SSL安全地连接而不需要任何额外的密钥就需要私钥。

所以我的问题是:将亚马逊证书转换为可从.NET使用的PKCS#12 / PFX格式的正确步骤是什么?

谢谢。

1 个答案:

答案 0 :(得分:6)

我认为(and this post backs it up)您不需要使用connector/net指定要求SSL的公钥。这应该有效:

"Server=SERVER;Database=test;Uid=UID;Pwd=PASSWORD;SSL Mode=Required;" 

仅需要指定公钥以确保与SSL建立连接的服务器是具有相应私钥的服务器。否则,如果未指定,它将使用连接字符串中的服务器提供的任何证书执行标准SSL握手。

因此,您仍然可以获得加密连接,但是您不会另外验证您连接的服务器是否是您之前安装公钥的服务器。

如果您仍然需要这样做,可以尝试使用BouncyCastle加载pem文件。