Linux

檢查遠端證書 - MySQL

  • March 22, 2018

通過 Linux 命令行找到了保存遠端 SSL 證書,但在 MySQL(以及 TLS)的情況下它不起作用。

所以問題是 - 我如何檢查遠端證書以獲取與 MySQL 的 TLS 連接?

MySQL 不在埠上使用直接 SSL(如果這樣做,則無法對未加密和加密連接使用相同的 TCP/3306 埠,以同樣的方式,不能對兩者都使用埠 TCP/80 HTTP 和 HTTPS 流量)。

它也不使用一些簡單的文本 STARTTLS 命令來從未加密切換到 SSL 加密連接(如 IMAP、POP3、FTP、SMTP、XMPP 等使用)。相反,它使用自己的二進制協議來協商 mysql 選項(SSL 只是其中之一)。您可以在 sql_real_connect() 函式的 mysql 原始碼中查看它是如何工作的。

因此,要獲得您想要的,您需要編寫自定義程序來模擬 SSL libmysql 連接,但在此過程中使用 SSL 證書輸出額外的調試資訊。好的起點可能是來自 mysql 源的 sql-common/client.c(查找 CLIENT_SSL)。不幸的是,我不知道已經編寫了任何此類程序(不是我沒有看過,只是沒有找到)。

或者,如果您對伺服器具有 ssh/NRPE 訪問權限,則可以輕鬆破解腳本以使用 openssl(1) 直接從 mysqld 使用的 PEM 文件顯示證書,這會容易得多。

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