Spring boot项目配置SSL

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_第1张图片

接着,将生成的.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)