在 Spring Boot 应用程序中配置 HTTPS 访问方式可以根据你是否拥有由受信任的证书颁发机构(CA)签发的证书来分为两种情况:使用自签名证书和使用 CA 签发的证书。下面我将分别介绍这两种情况的配置方法:
使用自签名证书
如果你还没有有效的 SSL/TLS 证书,可以选择生成一个自签名证书。这种证书不由 CA 签发,适用于测试和开发环境。
-
生成自签名证书: 使用
keytool
生成自签名证书和密钥库(.jks
或.p12
):keytool -genkeypair -alias myalias -keyalg RSA -keysize 2048 -keystore mykeystore.jks -validity 365 -storepass [密钥库密码] -keypass [密钥密码]
-
配置 Spring Boot: 在
application.properties
或application.yml
中配置 SSL:application.yml
示例:server: port: 8443 ssl: key-store: classpath:mykeystore.jks key-store-password: [密钥库密码] keyStoreType: JKS keyAlias: myalias
将密钥库放置在资源目录: 将
mykeystore.jks
文件放在项目的src/main/resources
目录下。
使用 CA 签发的证书
如果你选择从 CA 获取证书,步骤会稍有不同。
-
从 CA 获取证书:
- 生成 CSR(证书签名请求)并提交给 CA。
- 完成域名验证并从 CA 获取证书。
-
将证书转换为 KeyStore: 如果 CA 提供的证书不是在 KeyStore 格式,你需要将其转换为
.jks
或.p12
格式。使用openssl
可以完成这个转换。 -
配置 Spring Boot: 和使用自签名证书时的配置类似,但密钥库的路径和密码将对应于从 CA 获得的证书。
application.yml
示例:server: port: 8443 ssl: key-store: classpath:keystore.p12 key-store-password: [密钥库密码] keyStoreType: PKCS12 keyAlias: myalias
-
将密钥库放置在资源目录: 将转换后的密钥库文件放在
src/main/resources
目录下。
共同步骤
- 重启应用:重启 Spring Boot 应用以应用这些配置。
- 测试 HTTPS 连接:确保应用程序现在可以通过 HTTPS 正确访问。
注意事项
- 自签名证书不适用于生产环境,因为它们不被用户浏览器信任。
- 使用 CA 签发的证书适用于生产环境,可以提供更高的安全性和用户信任度。
- 保护你的密钥库和私钥文件,不要公开它们。
- 对于生产环境,你可能还需要考虑其他安全措施,如配置 HTTP 到 HTTPS 的重定向、启用 HSTS(HTTP Strict Transport Security)等。
原文地址:https://blog.csdn.net/www_tlj/article/details/135706776
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_58738.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!