天天看點

開源 | Mysql 開啟 ssl 加密協定及 Java 用戶端配置操作指南

作者:java易
開源 | Mysql 開啟 ssl 加密協定及 Java 用戶端配置操作指南

業務場景

在一些情況下,為了保證應用程式到資料庫之前資料傳輸的安全性,以及資料庫查詢完成之後傳回給應用程式的傳輸中的安全性,可以通過開啟 Mysql 的 SSl 加密協定來提高資料傳輸的安全性,下面将主要告訴大家如何開啟 Mysql 權限管理賬戶的 SSL 權限以及 Java 用戶端如何正确配置連結參數來實作應用程式到資料庫的正常業務資料傳輸。

Mysql 配置

Mysql 需要配置對應的 ssl 賬号密碼,同時對該賬号開啟 ssl 驗證,具體操作由 DBA 完成,這裡我就不再贅述,作為 Java 用戶端隻需要拿到 DBA 配置的賬号對應的 ca.pem 證書資訊即可開啟後面的操作。

驗證 Mysql 開啟 SSL

驗證指令

show global variables like '%ssl%';           

驗證結果如圖,可以看到資料庫是否開啟 ssl 協定

開源 | Mysql 開啟 ssl 加密協定及 Java 用戶端配置操作指南
開源 | Mysql 開啟 ssl 加密協定及 Java 用戶端配置操作指南

開啟 ssl 協定之後可以看到對應 Mysql 伺服器的證書路徑,拿到證書檔案後放在 windows 本地目錄等待下一步操作

開源 | Mysql 開啟 ssl 加密協定及 Java 用戶端配置操作指南

Java 用戶端操作

這裡我測試本地 windows 環境的操作,linux 的操作基本相同,隻是檔案路徑的差別而已

生成證書密碼

首先需要基于上一步 Mysql 配置完 ssl 賬戶生成對應的 ca.pem 證書,通過 jvm 的 keytool 工具将 ca.pem 證書放入到 truststore 倉庫中;

windows 作業系統可以直接在上一步存放 ca.pem 證書的目錄通過快捷鍵【Ctrl+Shift+滑鼠右鍵】喚起 Powershell 視窗,執行指令

keytool -importcert -alias MySQLCACert -file ca.pem -keystore truststore -storepass 123456           

其中:truststore 是存儲證書的密鑰庫,123456 是密鑰庫密碼

開源 | Mysql 開啟 ssl 加密協定及 Java 用戶端配置操作指南

生成之後可以檢視一下是否生成成功,操作指令

keytool -list -keystore truststore           

輸入密鑰庫密碼之後可以看到證書資訊

開源 | Mysql 開啟 ssl 加密協定及 Java 用戶端配置操作指南

回到喚起 Powershell 視窗的檔案夾(即存放 ca.pem)的檔案夾下可以看到生成的證書密鑰庫檔案 truststore,如圖

開源 | Mysql 開啟 ssl 加密協定及 Java 用戶端配置操作指南

這樣證書密碼就算生成成功了,證書密碼路徑為: E:\2022mycomputer\mysql_cert\truststore

配置資料庫連接配接

資料庫連接配接如下

datasource.masterUrl=jdbc:mysql://127.0.0.1:3306/ei_app?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&verifyServerCertificate=true&requireSSL=true&sslMode=verify_ca&trustCertificateKeyStoreUrl=file:E:/2022mycomputer/mysql_cert/truststore&trustCertificateKeyStorePassword=123456           

參數說明:

useSSL:是否建立 SSL 連接配接

verifyServerCertificate:是否需要檢驗 Mysql 伺服器證書

requireSSL:SSL 連接配接,如果 Mysql 伺服器不支援會失敗

sslMode:SSL 的連接配接模式

trustCertificateKeyStoreUrl:truststore 密鑰庫檔案

trustCertificateKeyStorePassword:truststore 密鑰庫密碼

配置完成之後再使用對應 ca.pem 證書的賬戶密碼即可以正常連接配接 Mysql 了

工具配置

這裡舉例工具為 navicat ,個人測試的 navicat 15 可以通過 ssl 連接配接資料庫,navicat 11 連接配接不成功,連接配接操作如圖

開源 | Mysql 開啟 ssl 加密協定及 Java 用戶端配置操作指南

配置 SSL 證書資訊

開源 | Mysql 開啟 ssl 加密協定及 Java 用戶端配置操作指南

配置完成之後點選連接配接測試,如果你目前的 navicat 版本支援 SSL 連接配接的話會提示

開源 | Mysql 開啟 ssl 加密協定及 Java 用戶端配置操作指南

如果配置沒有問題但是連接配接測試提示失敗的,那就是目前版本的 navicat 不支援 SSL 連接配接

開源 | Mysql 開啟 ssl 加密協定及 Java 用戶端配置操作指南

可以更新 navicat 到高的版本即可,這個是版本不相容 SSL 加密協定的問題,不是你的配置有問題的哦。

原文連結;https://xie.infoq.cn/article/aeeae6c3cfa2901e37f58e87c

繼續閱讀