证书准备

首先需要生成一个 SSL 证书,可以使用 OpenSSL 工具或者自己的 CA 颁发机构来生成证书,这里就不赘述了。如果是测试阶段,也可以使用 self-signed certificate。 直接使用jdk的keytool生成,具体操作方法如下:

使用管理员身份运行命令提示符使用命令进入到jdk安装路径的bin文件夹下随后使用命令:keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650生成密钥。

以上步骤如下图所示: 生成的证书如下: 把它粘贴到项目的classpath下即可使用。

项目配置

把证书文件移动到此: 而后在application.yml中进行一些配置: 注意key-store-password不要写成key-password了。

server:

ssl:

enabled: true #启用SSL

key-store: classpath:keystore.p12 #文件位置

key-store-password: root123 #密钥存储密码(即生成时要求输入两遍的那个的密钥库口令)

key-store-type: PKCS12 #密钥存储类型

重启项目,启动成功即说明配置成功。 访问项目原来的swagger界面测试一下。 出现以上说明正确。 在前面加上前缀https://再试一次,可能会出现如下界面: 由于访问的是 HTTPS,浏览器会进行 SSL 验证,如果服务器没有配置合法的 SSL 证书,浏览器会给出安全警告。如果只是测试阶段,可以先信任自己的 SSL 证书,例如在 Chrome 中将证书添加到受信任的根证书颁发机构中。生产环境中,则需要购买合法的 SSL 证书。 此处我们是个人测试,故而点击详情直接访问即可。 成功进入swagger界面: 测试接口,发现已经成功放入HTTPS了:

前端怎么做?

前端访问 HTTPS 上的接口与 HTTP 上的接口是类似的,只需要将 URL 中的 http 改成 https。例如,如果原本访问的是 http://localhost:8080/api/user,修改为 https://localhost:8080/api/user 即可。

这里需要注意一个问题:HTTP默认端口是80,而HTTPS默认端口是443,建议指定端口,避免搞错。

参考链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: