2014-02-17 54 views
2

我的Amazon RDS MySQL數據庫配置爲通過SSL訪問。如何使用MySQL從MySQL訪問Amazon RDS上託管的MySQL數據庫連接器

使用存儲在https://rds.amazonaws.com/doc/mysql-ssl-ca-cert.pem和PHP的公鑰,我可以成功地從我的開發機器連接到MySQL。使用相同的.PEM文件我也可以使用MySQL Workbench成功連接。

現在我試圖從.NET做同樣的事情。 Windows上不支持PEM格式的證書。我試圖在互聯網上跟隨幾個資源,用Openssl生成一個PFX文件,但沒有運氣。

我也嘗試使用this SSL converter導出爲PFX格式。在線工具要求提供我沒有的私鑰。我不明白爲什麼需要私鑰,只要PHP安全地通過SSL連接而不需要任何額外的密鑰。

所以我的問題是:什麼是將亞馬遜的證書轉換爲可用於.NET的PKCS#12/PFX格式的正確步驟?

謝謝。

回答

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文件。

+0

只需添加'SSL Mode = Required'即可解決問題!沒有其他PFX文件是必需的。如果你仔細想一想,是的,這是有道理的,因爲.NET Connector將使用在握手期間在服務器上找到的任何證書來加密連接。 Amazon明確指定SSL僅用於加密而不用於驗證。我真的誤解了MySQL .NET Connector上的SSL教程 - http://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-ssl.html。謝謝! – Lucian

相關問題