0


【开发细节】SpringBoot项目将接口从HTTP换为HTTPS

证书准备

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

  1. 使用管理员身份运行命令提示符
  2. 使用命令进入到jdk安装路径的bin文件夹下
  3. 随后使用命令: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#启用SSLkey-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,建议指定端口,避免搞错。

标签: http spring boot https

本文转载自: https://blog.csdn.net/qq_44778023/article/details/131307371
版权归原作者 君去何方 所有, 如有侵权,请联系我们删除。

“【开发细节】SpringBoot项目将接口从HTTP换为HTTPS”的评论:

还没有评论