Mysql

MySQL SSL 錯誤,僅在從 windows/osX 連接時

  • December 14, 2017

我正在使用 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)

這是我為解決此問題所做的工作

  1. 我在伺服器和本地機器上生成了 cert/key/ca 的校驗和,它們是相同的
  2. 我看過Can’t connect to MySQL 5.5 with SSL server fault question 兩個想法都沒有解決問題
  3. 我已經通過啟動 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中的域名。

如果仍然失敗,您可以:

  1. 用 tcpdump 或 Wireshark 嗅探你的連接,查看 TLS 握手。
  2. 解決stunnel或 VPN 的問題。

引用自:https://serverfault.com/questions/720544