通过SSL连接连接到AWS RDS MySQL的C#连接字符串

问题描述:

根据AWS RDS文档,AWS RDS MySQL附带SSL证书,公钥位于名为“rds-combined-ca-bundle.pem”的文件中“可从AWS网站下载。通过SSL连接连接到AWS RDS MySQL的C#连接字符串

我也看到了文件从MySQL,这是你如何建立在C#中的SSL客户端连接(.NET):

using (MySqlConnection connection = new MySqlConnection("database=test;user=sslclient;CertificateFile=H:\\...\\client.pfx;CertificatePassword=pass;SSL Mode=Required")) 
{ 
    connection.Open(); 
} 

但是如何将这种“RDS-联合CA-bundle.pem转换“到这个”client.pfx“?

客户端证书与CA Bundle不一样。 CA Bundle用于验证远程服务器的证书是否可信。您可以通过将CA添加到证书存储区来在Windows中执行此操作。话虽如此,当您指定SSL Mode = Required时,MySql Client将忽略证书验证,因此无需使用CA PEM File。

如果您确实希望.Net MySql客户端验证证书,那么您必须设置SSL Mode = VerifyCA或VerifyFull。

将PEM CA导入证书存储区。

打开MMC,然后转到证书管理单元。 打开证书(本地计算机),双击受信任的根证书颁发机构节点。
右键单击证书,选择所有任务 - >导入...

Here is a post with more information on MySQL .Net SSL options