前言
博主个人社区:开发与算法学习社区
博主个人主页:Killing Vibe的博客
欢迎大家加入,一起交流学习~~
众所周知,http是不安全的协议,那么要使服务器支持https,该如何在spring项目中配置呢?
一、借助keytools
正常来说,证书都是CA机构颁发的,但是我们也可以自己借助 Java 自带的 JDK 管理工具 keytool 来生成一个免费的 https 证书,只不过这种证书不被操作系统和浏览器信任罢了。
这个keytools工具在哪呢?
就在JDK的安装目录下的bin包下面。
二、详细步骤
keytool -genkey -alias anyname -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore D:\httpsKey.p12 -validity 3650
命令含义如下:
keytool: 表示keytool工具
genkey:表示要创建一个新的密钥。
alias:表示 keystore 的别名。anyname 都可以。
storetype:表示密钥的仓库类型,存储格式是PKCS12.
keyalg:表示使用的加密算法是 RSA ,一种非对称加密算法。
keysize:表示密钥的长度。这里是2048.
keystore:表示生成的证书文件存放位置。 这里是D:\httpsKey.p12 ,有时候放C盘可能有权限问题
validity:表示证书的有效时间,单位为天。这里是3650天也就是十年。
- 3.然后跟着如下图所示一个一个输入就行。
三、配置spring项目支持https
在我们的项目中找到application.properties 文件
然后直接输入
server.ssl.key-store=D:\httpsKey.p12
server.ssl.key-store-password=123456
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=anyname
然后运行服务器就可以了。
此时,浏览器地址栏中输入 http://127.0.0.1:8080/
会导致错误请求:
咱们只能用https来访问,地址栏输入https://127.0.0.1:8080/
,会显示如下:
这是因为我们自己生成的 https 证书不被浏览器认可,(实际项目中只需要更换一个被浏览器认可的 https 证书即可),我们打开高级,接收并继续就可以了。
由于考虑到 Spring Boot 不支持同时启动 HTTP 和 HTTPS ,为了解决这个问题,我们这里可以配置一个请求转发,当用户发起 HTTP 调用时,自动转发到 HTTPS 上:
参考文章如下:
总结
以上就是spring boot支持https请求的详细步骤了,和一些教程不一样,但是其实都是差不多的,我这里省去了不少步骤,更方便快捷~~ 有帮助的话,可以点赞收藏,有什么问题私信博主,感谢支持。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/115450.html