SpringBoot + MySQL 實(shí)現(xiàn) SSL 連接配置
一、獲取SSL證書文件
Windows用戶操作步驟:
- 打開PowerShell窗口
- 依次執(zhí)行以下命令下載證書:
scp root@服務(wù)器IP:/etc/mysql-ssl/ca.pem D:\certs scp root@服務(wù)器IP:/etc/mysql-ssl/server-cert.pem D:\certs scp root@服務(wù)器IP:/etc/mysql-ssl/server-key.pem D:\certs
二、轉(zhuǎn)換證書格式
操作步驟:
- 打開命令提示符(cmd)
- 生成信任證書庫:
keytool -importcert -alias Cacert -file ca.pem -keystore mysql-truststore -storepass 你的密碼
- 生成密鑰庫:
keytool -importkeystore -srckeystore mysql-truststore -destkeystore mysql-keystore -deststoretype pkcs12
注意:執(zhí)行后會(huì)提示設(shè)置新密碼
三、放置證書文件
將生成的這兩個(gè)文件放入項(xiàng)目:
mysql-truststore(信任證書庫)mysql-keystore(密鑰庫)
存放位置:項(xiàng)目的resources文件夾下

四、建立安全連接通道
執(zhí)行命令:
ssh -N -L 63306:127.0.0.1:3306 root@服務(wù)器IP
說明:這樣可以通過本地的63306端口安全訪問服務(wù)器的MySQL服務(wù)。而127.0.0.1:3306 是執(zhí)行docker容器時(shí),我設(shè)置了MySQL 容器??默認(rèn)只能通過服務(wù)器本機(jī)(127.0.0.1)連接??,如果執(zhí)行容器沒有限制ip地址,則可以使用公網(wǎng)ip。
五、配置Spring Boot
在application.yml中添加配置:
spring:
datasource:
url: jdbc:mysql://127.0.0.1:63306/數(shù)據(jù)庫名?useSSL=true&
trustCertificateKeyStoreUrl=file:證書路徑&
trustCertificateKeyStorePassword=你的密碼&
clientCertificateKeyStoreUrl=file:證書路徑&
clientCertificateKeyStorePassword=你的密碼
username: 數(shù)據(jù)庫用戶名
password: 數(shù)據(jù)庫密碼
關(guān)鍵點(diǎn)說明:
useSSL=true表示啟用SSL加密- 兩個(gè)證書路徑要替換為實(shí)際存放位置
- 密碼要保持一致
- 路徑必須是絕對路徑,例:
clientCertificateKeyStoreUrl=file:B:\xxx\src\main\resources\mysql-ssl\mysqlkeystore
這樣就完成了MySQL的SSL安全連接配置!
到此這篇關(guān)于SpringBoot + MySQL 實(shí)現(xiàn) SSL 連接配置的文章就介紹到這了,更多相關(guān)SpringBoot MySQL SSL連接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- springboot配置mysql數(shù)據(jù)庫spring.datasource.url報(bào)錯(cuò)的解決
- 解決springboot 連接 mysql 時(shí)報(bào)錯(cuò) using password: NO的方案
- SpringBoot連接MYSQL數(shù)據(jù)庫并使用JPA進(jìn)行操作
- Springboot整合camunda+mysql的集成流程分析
- SpringBoot多數(shù)據(jù)庫連接(mysql+oracle)的實(shí)現(xiàn)
- 詳解如何在SpringBoot中配置MySQL數(shù)據(jù)庫的連接數(shù)
- IDEA創(chuàng)建SpringBoot項(xiàng)目整合mybatis時(shí)mysql-connector-java報(bào)錯(cuò)異常的詳細(xì)分析
- Springboot + Mysql8實(shí)現(xiàn)讀寫分離功能
- springboot配置mysql連接的實(shí)例代碼
相關(guān)文章
基于Java回顧之網(wǎng)絡(luò)通信的應(yīng)用分析
在這篇文章里,我們主要討論如何使用Java實(shí)現(xiàn)網(wǎng)絡(luò)通信,包括TCP通信、UDP通信、多播以及NIO2013-05-05
Java TimedCache 帶時(shí)間緩存工具類詳解使用
工具類是包含集合框架、遺留的 collection 類、事件模型、日期和時(shí)間設(shè)施、國際化和各種實(shí)用工具類(字符串標(biāo)記生成器、隨機(jī)數(shù)生成器和位數(shù)組、日期Date類、堆棧Stack類、向量Vector類等)。集合類、時(shí)間處理模式、日期工具等各類常用工具包,本文將介紹帶時(shí)間緩存工具類2021-10-10
Java猜數(shù)字小游戲之使用Scanner實(shí)現(xiàn)互動(dòng)體驗(yàn)
猜數(shù)字游戲看似簡單,卻涵蓋了Java編程的多個(gè)核心知識點(diǎn),這篇文章主要介紹了Java猜數(shù)字小游戲之使用Scanner實(shí)現(xiàn)互動(dòng)體驗(yàn)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-10-10
Javax Validation自定義注解進(jìn)行身份證號校驗(yàn)
這篇文章主要為大家詳細(xì)介紹了如何通過Javax Validation自定義注解進(jìn)行身份證號校驗(yàn),文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下2024-10-10
一次"java:程序包org.aspectj.lang不存在"問題解決實(shí)戰(zhàn)記錄
這篇文章主要給大家介紹了一次"java:程序包org.aspectj.lang不存在"問題解決的實(shí)戰(zhàn)過程,這個(gè)錯(cuò)誤提示意味著你的Java程序中引用了org.aspectj.lang這個(gè)包,但是該包并不存在,文章通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06

