SpringBoot + MySQL 实现 SSL 连接配置

 更新时间:2026年05月01日 09:44:52   作者:油腻的老码  
本文主要介绍了SpringBoot + MySQL 实现 SSL 连接配置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、获取SSL证书文件

Windows用户操作步骤:

  • 打开PowerShell窗口
  • 依次执行以下命令下载证书:
scp root@服务器IP:/etc/mysql-ssl/ca.pem D:\certs
scp root@服务器IP:/etc/mysql-ssl/server-cert.pem D:\certs
scp root@服务器IP:/etc/mysql-ssl/server-key.pem D:\certs

二、转换证书格式

操作步骤:

  • 打开命令提示符(cmd)
  • 生成信任证书库:
keytool -importcert -alias Cacert -file ca.pem -keystore mysql-truststore -storepass 你的密码
  • 生成密钥库:
keytool -importkeystore -srckeystore mysql-truststore -destkeystore mysql-keystore -deststoretype pkcs12

注意:执行后会提示设置新密码

三、放置证书文件

将生成的这两个文件放入项目:

  • mysql-truststore(信任证书库)
  • mysql-keystore(密钥库)

存放位置:项目的resources文件夹下

四、建立安全连接通道

执行命令:

ssh -N -L 63306:127.0.0.1:3306 root@服务器IP

说明:这样可以通过本地的63306端口安全访问服务器的MySQL服务。而127.0.0.1:3306 是执行docker容器时,我设置了MySQL 容器​​默认只能通过服务器本机(127.0.0.1)连接​​,如果执行容器没有限制ip地址,则可以使用公网ip。

五、配置Spring Boot

application.yml中添加配置:

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:63306/数据库名?useSSL=true&
      trustCertificateKeyStoreUrl=file:证书路径&
      trustCertificateKeyStorePassword=你的密码&
      clientCertificateKeyStoreUrl=file:证书路径&
      clientCertificateKeyStorePassword=你的密码
    username: 数据库用户名
    password: 数据库密码

关键点说明:

  • useSSL=true 表示启用SSL加密
  • 两个证书路径要替换为实际存放位置
  • 密码要保持一致
  • 路径必须是绝对路径,例:
clientCertificateKeyStoreUrl=file:B:\xxx\src\main\resources\mysql-ssl\mysqlkeystore

这样就完成了MySQL的SSL安全连接配置!

到此这篇关于SpringBoot + MySQL 实现 SSL 连接配置的文章就介绍到这了,更多相关SpringBoot MySQL SSL连接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Java回顾之网络通信的应用分析

    基于Java回顾之网络通信的应用分析

    在这篇文章里,我们主要讨论如何使用Java实现网络通信,包括TCP通信、UDP通信、多播以及NIO
    2013-05-05
  • java代码规范review异常事故记录

    java代码规范review异常事故记录

    这篇文章主要为大家介绍了java代码规范关于异常review代码发生异常的事故记录,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Java TimedCache 带时间缓存工具类详解使用

    Java TimedCache 带时间缓存工具类详解使用

    工具类是包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合类、时间处理模式、日期工具等各类常用工具包,本文将介绍带时间缓存工具类
    2021-10-10
  • 一文彻底掌握RocketMQ 的存储模型

    一文彻底掌握RocketMQ 的存储模型

    这篇文章主要介绍了RocketMQ 的存储模型,本文的重点在于分析 BrokerServer 的消息存储模型,笔者按照自己的理解 , 尝试分析 RocketMQ 的存储模型,需要的朋友可以参考下
    2022-12-12
  • Java猜数字小游戏之使用Scanner实现互动体验

    Java猜数字小游戏之使用Scanner实现互动体验

    猜数字游戏看似简单,却涵盖了Java编程的多个核心知识点,这篇文章主要介绍了Java猜数字小游戏之使用Scanner实现互动体验的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-10-10
  • 阿里云OSS基于java使用详解

    阿里云OSS基于java使用详解

    这篇文章主要介绍了阿里云OSS基于java使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Mybatis分步查询的实现示例

    Mybatis分步查询的实现示例

    本文主要介绍了Mybatis分步查询的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Javax Validation自定义注解进行身份证号校验

    Javax Validation自定义注解进行身份证号校验

    这篇文章主要为大家详细介绍了如何通过Javax Validation自定义注解进行身份证号校验,文中的示例代码讲解详细,有需要的小伙伴可以参考一下
    2024-10-10
  • spring控制事务的三种方式小结

    spring控制事务的三种方式小结

    这篇文章主要介绍了spring控制事务的三种方式小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • 一次"java:程序包org.aspectj.lang不存在"问题解决实战记录

    一次"java:程序包org.aspectj.lang不存在"问题解决实战记录

    这篇文章主要给大家介绍了一次"java:程序包org.aspectj.lang不存在"问题解决的实战过程,这个错误提示意味着你的Java程序中引用了org.aspectj.lang这个包,但是该包并不存在,文章通过图文介绍的非常详细,需要的朋友可以参考下
    2023-06-06

最新评论