Mysql
導入自簽名證書 mysql/mariadb 和 tomcat 如何?
嘗試使用證書來保護 Tomcat 8.x 和 mysql/mariadb 之間的連接。我將使用自簽名證書。接下來是我認為我應該去的,感謝你加入並糾正我。
創建後端(數據庫)證書
- sudo openssl genrsa 4096 > ca-key.pem
- sudo openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca-cert.pem
- sudo openssl req -newkey rsa:4096 -days 3600 -nodes -keyout server-key.pem -out server-req.pem
- sudo openssl rsa -in server-key.pem -out server-key.pem
- sudo openssl x509 -req -in server-req.pem -days 3600 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
更新 mysql cnf
- ca-key.pem
- 伺服器-key.pem
- 伺服器-cert.pem
好的,這就是我不知道如何進行的地方。我想我必須使用 JAVA keytool 。
我從這裡去哪裡?
到 OSP
您描述的步驟對我來說看起來不錯。不過,您不需要對 openssl 命令使用 sudo。
之後,您必須將 CA 證書導入 java 信任庫。它被稱為“cacerts”並駐留在
<path_to_jre>/security/
目錄中。只需使用以下命令導入證書:keytool -import -trustcacerts -keystore /path/to/jre/security/cacerts \ -file /path/to/ca-cert.pem -alias "some meaningful name"
密鑰庫文件的預設密碼是“changeit”。
如果已導入,則應將
useSSL=true
開關添加到 JDBC URL,如下所示:jdbc:mysql://server/database?useUnicode=true&useSSL=true
需要考慮的一些事項:
- 您不必使用系統範圍的密鑰庫,但如果您不這樣做,則必須在連接前
-Djavax.net.ssl.trustStore=/keystore/path
通過開關或通過呼叫提供密鑰庫位置System.setProperty("javax.net.ssl.trustStore", "/keystore/path")
。- 輸入文件必須是 PEM 格式(即,
-----BEGIN CERTIFICATE-----
和-----END CERTIFICATE-----
行之間的 base64 編碼的東西)。- 該
keytool
命令不搜尋證書:它應該是輸入文件中的第一個條目。