Mysql
MySQL SSL 錯誤,僅在從 windows/osX 連接時
我正在使用 openssl 生成 ssl 證書,用於通過 SSL 加密連接到 mysql。當我從本地主機環境連接時,這工作正常(即使我通過伺服器公共 IP 連接,我也已從 Web 伺服器框成功連接)。但是,當我嘗試從本地開發機器連接時,我收到 SSL 錯誤。
從託管平台連接時
mysql -u 指標 -p -h 45.33.xx --ssl-key=client-key.pem --ssl-ca=ca.pem --ssl-cert=client-cert.pem 輸入密碼: 歡迎使用 MySQL 監視器。命令以 ; 結尾 或\g。 您的 MySQL 連接 ID 是 136 ...
從 Mac 開發機器連接時,我使用 scp 將證書/密鑰文件複製到我的開發機器
mysql -u 指標 -h 45.33.xx -p --ssl-key=client-key.pem --ssl-cert=client-cert.pem --ssl-ca=ca.pem 輸入密碼: 錯誤 2026 (HY000):SSL 連接錯誤:錯誤:00000001:lib(0):func(0):reason(1)
這是我為解決此問題所做的工作
- 我在伺服器和本地機器上生成了 cert/key/ca 的校驗和,它們是相同的
- 我看過Can’t connect to MySQL 5.5 with SSL server fault question 兩個想法都沒有解決問題
- 我已經通過啟動 openSSL 伺服器(在 mysql 伺服器上)並從我的本地電腦連接來調試 SSL,再次沒有問題。
如果它有所不同,伺服器都執行 ubuntu 14.04 和 openSSL “OpenSSL 1.0.1f 6 Jan 2014” 我從 osX 10.10.4 連接到 openSSL “OpenSSL 1.0.2c 12 Jun 2015”
那麼有什麼想法嗎?
這看起來像一個與密碼相關的問題。嘗試在伺服器和客戶端上添加選項:
--ssl-cipher=AES128-SHA
. 您可以使用任何其他套件在openssl ciphers HIGH
.MySQL客戶端配置文件也可能包含
ssl-verify-server-cert
選項,如果是這樣刪除它或(更安全)使用伺服器證書CN中的域名。如果仍然失敗,您可以:
- 用 tcpdump 或 Wireshark 嗅探你的連接,查看 TLS 握手。
- 解決stunnel或 VPN 的問題。