SpringBoot:SSL证书部署+SpringBoot实现HTTPS安全访问
- 人工智能
- 2025-08-26 03:09:02

一、前言
SSL协议介于TCP/IP协议栈的第四层(传输层)和第七层(应用层)之间,为基于TCP的应用层协议(如HTTP)提供安全连接。它通过在客户端和服务器之间建立一个加密的通道,确保数据在传输过程中的机密性、完整性和身份验证。
HTTPS(Hypertext Transfer Protocol Secure)是一种安全的通信协议,它在HTTP的基础上加入了SSL(Secure Sockets Layer,安全套接层)或其继任者TLS(Transport Layer Security,传输层安全)协议层,以确保数据在客户端和服务器之间的传输过程中得到加密和保护。
二、SSL工作原理握手阶段:
客户端发送Client Hello消息到服务器端,包括客户端支持的SSL版本、会话ID、随机数、密码算法列表和压缩方法等参数。
服务器收到Client Hello后,发送Server Hello消息,包括选择的SSL版本、服务器产生的随机数、会话ID、从客户端建议的密码套件中挑出的密码算法和压缩算法等。
服务器向客户端发送自己的证书,客户端验证服务器的身份,并取出证书中的公钥。
根据选择的密码套件,双方进行密钥交换和协商,生成用于加密和MAC的会话密钥。
安全数据传输阶段:
在已经建立的SSL数据通道里,双方使用协商好的加密算法和会话密钥,对传输的数据进行加密和MAC计算,确保数据的机密性和完整性。
三、模拟https请求1.生成签名证书
在操作之前,先确保jdk环境都是没问题的。
使用keytool(Java开发工具包的一部分)来生成一个自签名证书和私钥,或者从受信任的证书颁发机构(CA)获取一个证书。
keytool -genkeypair -alias mysslkey -keyalg RSA -keystore D:/keystore.p12 -storetype PKCS12 -keysize 2048 -validity 180 -dname "CN=xiaoming, OU=weiwei, O=xiaowei, L=hai, ST=dai, C=CN" -storepass 123456 -keypass 123456执行命令之后。生成如下的文件:
参数说明 -alias mysslkey:证书的别名。
-keyalg RSA:密钥算法。
-keystore keystore.p12:生成秘钥库的存储路径和名称。
-storetype PKCS12:指定密钥库类型为PKCS12。
-keysize 2048:密钥大小。
-validity 180:证书有效期(天)。
-dname:证书的信息。CN:姓名;OU:组织单位名称;O:组织名称;L:省/市/自治区名称;C:国家/地区代码。
-storepass 123456:密钥库的密码。
-keypass 123456:私钥的密码(可以与密钥库密码相同)。
springboot application.properties中配置
server.port=8443 server.ssl.key-store=classpath:keystore.p12 server.ssl.key-store-password=123456 server.ssl.keyStoreType=PKCS12 server.ssl.keyAlias=mysslkey server.ssl.enabled=true配置说明 server.port:HTTPS监听的端口。 server.ssl.key-store:密钥库文件的路径(相对于类路径)。 server.ssl.key-store-password:密钥库的密码。 server.ssl.keyStoreType:密钥库的类型(如PKCS12)。 server.ssl.keyAlias:证书的别名。 server.ssl.enabled:启用SSL
将keystore.p12文件导入到src/main/resources中 这样它就可以被classpath:前缀正确地引用。
访问本地地址结果如下: 因为使用的是自签名证书,所以浏览器会显示安全警告
点击继续前往
四、总结SSL和HTTPS在网络安全领域发挥着重要作用。通过部署SSL证书并使用HTTPS协议,网站可以保护用户数据的安全性和机密性,增强用户信任感。
SpringBoot:SSL证书部署+SpringBoot实现HTTPS安全访问由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“SpringBoot:SSL证书部署+SpringBoot实现HTTPS安全访问”