MYSQL版本8.0.32,默認是開啟ssl的,同時也是自帶證書的在/var/lib/mysql/下
jdbc連接Mysql數(shù)據(jù)庫需要使用SSL時,可以按一下步驟進行設(shè)置:
前置條件(可跳過):
1.新建SSL用戶
CREATE USER 'qq'@'%' IDENTIFIED BY '你的密碼';
GRANT ALL ON *.* TO 'qq'@'%';
ALTER USER 'qq'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
caching_sha2_password
2.對用戶使用ssl
ALTER USER 'qq'@'%' REQUIRE SSL;
FLUSH PRIVILEGES;
3.查看用戶情況
SELECT ssl_type From mysql.user Where user="qq"
4取消ssl
update user set ssl_type='' where user='qq';
FLUSH PRIVILEGES;
5.準備SSL證書等
6.查看是否啟用ssl
show variables like '%ssl%';
have_openssl YES
have_ssl YES
MYSQL驗證SSL
mysql --ssl-ca=/var/lib/mysql/ca.pem --ssl-cert=/var/lib/mysql/client-cert.pem --ssl-key=/var/lib/mysql/client-key.pem --ssl-cipher=AES128-SHA -u tq -p
進入后輸入\s查看ssl加密方式,如果有則為加密ssl登錄
jdbc接入
1、Mysql服務(wù)器開啟SSL配置
2、所在的機器導入ca證書,導入到truststore 文件
keytool -importcert -trustcacerts -alias MySQLCACert -file ca.pem -keystore truststore -storepass mypassword
直接導入到JDK導入證書(部署到本機)
在cmd命令中直接執(zhí)行該命令
keytool -import -trustcacerts -v -alias Mysql -file "C:\ProgramData\MySQL\MySQL Server 8.0\Data\ca.pem" -keystore "C:\Program Files\Java\jdk1.8.0_192\jre\lib\security\cacerts"
這樣做,自己一個人開發(fā),一點問題都沒有。但是放到生產(chǎn)就問題大了。
3.查看本地證書
keytool -list -keystore truststore
4、mysql連接設(shè)置證書
設(shè)置useSSL=true
配置trustCertificateKeyStoreUrl為證書的路徑
配置trustCertificateKeyStorePassword為第2步生成的mypassword
本地文件:
jdbc:mysql://127.0.0.1:3306/test?useSSL=true&trustCertificateKeyStoreUrl=file:path_to_truststore_file&trustCertificateKeyStorePassword=mypassword
{“allowPublicKeyRetrieval”: “true”,“useSSL”:“true”,“trustCertificateKeyStoreUrl”:“file:I:\REDEMPTION\ca.pem”,“trustCertificateKeyStorePassword”:“mypass”}
網(wǎng)絡(luò)文件:
"jdbc:mysql://ip:3306/test?useUnicode=true&useSSL=true&trustCertificateKeyStorePassword=123456&serverTimezone=Asia/Shanghai&trustCertificateKeyStoreUrl=http://localhost:8080/key
{“allowPublicKeyRetrieval”: “true”,“useSSL”:“true”,“trustCertificateKeyStoreUrl”:“http://localhost:7776/truststore”,“trustCertificateKeyStorePassword”:“mypass”}
參考:
[1] https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-using-ssl.html文章來源:http://www.zghlxwxcb.cn/news/detail-509735.html
導入證書
https://www.clzg.cn/article/309424.html
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
https://blog.csdn.net/qq_47433566/article/details/123581123
mysql使用jdbc連接增加ssl認證
https://blog.csdn.net/qq_42430287/article/details/123733498
新增證書
http://www.884358.com/mysql-ssl/
自建CA生成證書詳解
https://blog.csdn.net/weixin_40228200/article/details/121895791
docker mysql8使用SSL及使用openssl生成自定義證書
https://blog.csdn.net/weixin_43933728/article/details/127338271文章來源地址http://www.zghlxwxcb.cn/news/detail-509735.html
到了這里,關(guān)于mysql開啟ssl以及如何創(chuàng)建證書的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!