所以我需要通過SSL連接到MySQL服務器。我在服務器和客戶端都有root權限。服務器和客戶端上的操作系統都是Ubuntu Linux。該服務器正在運行MySQL 5.5.46。使用ssl連接到MySQL服務器
我產生下列網頁的指示證書:
http://dev.mysql.com/doc/refman/5.5/en/creating-ssl-files-using-openssl.html
這創建了8頁。質子交換膜的文件。我成功地讓服務器在啓用SSL的情況下運行。我知道,因爲如果我得到了MySQL提示的服務器上,然後運行:
mysql> show global variables like 'have_%ssl';
我得到:
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_openssl | YES |
| have_ssl | YES |
+---------------+-------+
我也穿上了誰將會連接到該服務器的用戶正確的權限。我知道,因爲如果我這樣做:
show grants for <username>
我在最後得到一個帶有「REQUIRE SSL」的GRANT語句。所以我真的認爲服務器端很好。
從客戶端連接是問題。我可以做,如果我使用了「-p」選項是這樣的:
$ mysql --ssl-ca=./path/to/ca.pem -h <hostname> -u <username> -D <databasename> -p
接着,我會提示輸入我的密碼,如果我進入它,我可以連接。
但我需要自動化此連接,並將密碼附加到上面的行是一個壞主意(並且永遠不會工作 - 我也想知道)。
那麼,如何以自動方式安全地連接到客戶端而不需要硬編碼密碼?當我按照上面鏈接的說明生成證書時,我得到了八個.pem文檔,其中大部分我都沒有使用。我需要使用client-key.pem嗎?客戶cert.pem?請注意,在命令行上傳遞到這些其他證書的路徑不起作用。也就是說,這樣的:
mysql --ssl-ca=./ca.pem --ssl-cert=./client-cert.pem --ssl-key=./client-key.pem -h <hostname> -u <username> -D <databasename>
失敗,就像上面的所有其他組合:「訪問被拒絕」
任何幫助深表感謝。