给SpringBoot的RESTful API加上HTTPS(生产环境)
Posted pcdd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给SpringBoot的RESTful API加上HTTPS(生产环境)相关的知识,希望对你有一定的参考价值。
步骤
1 申请免费的SSL证书,腾讯云,填写相关信息即可,如绑定的域名、邮箱、备注名
2 大约等10分钟就有结果了,在申请成功的证书列表点击下载
下载完成后,目录结构如下,因为SpringBoot内置的是Tomcat,所以就选Tomcat,其余的用不到
3 打开Tomcat,有两个文件,将.jks结尾的拷贝到springboot项目的resource目录下
4 编写配置文件,和你的文件名保持一致,key-store-password就是keystorePass.txt中的内容,只配置3项就可以生效了,无需编写配置类
server:
# 配置接口为https,部署后方可生效,本地不会显示
ssl:
key-store: classpath:域名.jks
key-store-password: ***********
key-store-type: JKS
参数说明:
key-store:证书文件的完整路径名
key-store-password:指定了私钥,即keystorePass.txt中的内容。
KeyStoreType:指定证书文件的类型,jks证书文件的类型即是JKS。
5 本地启动项目。我的端口为8181,效果如下
这里是http访问的,改为https的效果如下
返回的json数据是我对404进行了捕获,无需在意,出现上面的结果是正常的,因为我们申请的证书域名的ip肯定不是localhost,浏览器会认为证书是无效的,只有部署到和证书域名一样的服务器上才会生效,若申请证书绑定的域名和你部署到的服务器的域名不一致,即使部署到线上证书仍然不被浏览器所认可。
例如服务器的域名为abc.com,证书绑定的域名也应为abc.com而不是三级域名xxx.abc.com
项目package后生成jar包,我是用的是docker部署,不使用docker也可以,可以使用java -jar命令,总之让项目在服务器上跑起来就行
有关docker的文章可以参考:https://blog.csdn.net/weixin_43553153/category_10874280.html
部署成功后访问 https://你的域名:你项目的端口号,docker端口映射为8181:8085
结果如下
发现chrome浏览器的地址栏有一个小锁,说明https生效了。
以上是关于给SpringBoot的RESTful API加上HTTPS(生产环境)的主要内容,如果未能解决你的问题,请参考以下文章
玩转 SpringBoot 2 快速搭建 | RESTful Api 篇
企业级 SpringBoot 教程 springboot集成swagger2,构建优雅的Restful API
springboot集成swagger2,构建优雅的Restful API
(转) SpringBoot非官方教程 | 第十一篇:springboot集成swagger2,构建优雅的Restful API