欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring boot项目配置SSL

程序员文章站 2022-06-25 20:18:27
...

SSL(Secure Socket Layer,安全套接层)是为了网络通信提供安全及数据完整性的一种安全协议,SSL在网络传输层对网络连接进行加密。
SSL协议可分为两层:

  • SSL记录协议(SSL Record Protocol),它建立在可靠的传输协议(如TCP)之上,为高层提供数据封装、压缩、加密。
  • SSL握手协议(SSL Handshake Protocol),它建立在SSL记录协议之上,用于在实际数据传输开始前,通信双方进行身法认证,协商加密算法,交换加***等。

在基于B/S的Web应用中,是通过HTTPS来实现SSL的,HTTPS是以安全为目标的HTTP通道,简单讲就是HTTP安全版,即在HTTP下加入SSL层,HTTP的安全基础是SSL。

生成证书

因为是加密,所以需要为SSL生成一个证书,这个证书可以来自签名的,也可以是从SSL证书授权中心获得的。
下面以jdk自带工具keytool(发布安卓项目也需要用到的)为例,生成一个自授权证书例子。
执行 keytool -genkey -alias anla7856 -keyalg RSA
注意要加上-keyalg 属性指明某一种算法加密,否则默认使用老算法,浏览器将不承认而无法访问报错
Error code: SSL_ERROR_NO_CYPHER_OVERLAP:
Spring boot项目配置SSL

接着,将生成的.keystore文件,复制到项目根目录下(或其他)。

修改properties配置

在会加载的properties文件里面加上以下几句:

#server
server.port=8989
server.ssl.key-store=.keystore
server.ssl.key-store-password=123456
server.ssl.keyStoreType=JKS
server.ssl.keyAlias=anla7856

更改端口可以有或者没有。
重新运行项目,通过访问[https://localhost:8989/](https://localhost:8989/) 即可

相关标签: Spring Boot