新增:自签名证书还是太麻烦了,不如买域名(都买最便宜的花不了几个钱)然后安装宝塔,傻瓜式操作申请Let’s Encrypt 免费SSL证书
在本地运行的 Spring Boot 项目中启用 HTTPS,通常需要做以下几步。通过使用自签名证书或由受信任证书颁发机构签发的证书,您可以配置 Spring Boot 支持 HTTPS。
1. 生成自签名证书
如果只是为了本地开发和测试,可以生成一个自签名证书。您可以使用 keytool
工具来生成一个 .keystore
文件。
使用 keytool
生成自签名证书
keytool -genkeypair -v -keystore keystore.jks -keyalg RSA -keysize 2048 -validity 3650 -alias mykey
-keystore keystore.jks
:生成的证书存储文件。-keyalg RSA
:使用的加密算法(通常是 RSA)。-keysize 2048
:密钥大小。-validity 3650
:证书有效期(这里是 10 年)。-alias mykey
:密钥的别名。
输入密码和证书的相关信息(可以设置为默认的值)。
2. 配置 Spring Boot 支持 HTTPS
修改 application.properties
或 application.yml
配置文件,告诉 Spring Boot 使用 HTTPS 并指定 keystore
文件的位置。
使用 application.properties
配置
server.port=8443
server.ssl.key-store=classpath:keystore.jks
server.ssl.key-store-password=your_keystore_password
server.ssl.key-store-type=JKS
server.ssl.key-alias=mykey
使用 application.yml
配置
server:
port: 8443
ssl:
key-store: classpath:keystore.jks
key-store-password: your_keystore_password
key-store-type: JKS
key-alias: mykey
解释:
server.port=8443
:将服务器端口设置为 8443,这是默认的 HTTPS 端口。server.ssl.key-store
:指定证书的路径,classpath:
表示证书在资源文件夹中。server.ssl.key-store-password
:证书的密码。server.ssl.key-store-type
:证书类型,通常是 JKS 或 PKCS12。server.ssl.key-alias
:密钥的别名(即在生成证书时指定的-alias
)。
3. 将 keystore.jks
放到资源目录
将生成的 keystore.jks
文件放置到 src/main/resources
目录下,或者可以根据实际情况修改配置中的路径。
4. 启动项目
启动 Spring Boot 应用程序后,您应该能够通过 https://localhost:8443
访问应用程序了。注意,由于这是自签名证书,浏览器会提示“不安全”,但在本地开发中这是可以忽略的。
5. 配置浏览器信任证书(可选)
如果您希望浏览器不显示“不安全”的警告,可以将自签名证书添加到浏览器的受信任证书列表中。但这对于开发环境来说并不是必须的。
6. 使用真实的证书(生产环境)
在生产环境中,建议使用由受信任的证书颁发机构(CA)签发的 SSL 证书。您只需将 .keystore
文件替换为有效的证书文件,并按照上面相同的步骤进行配置。
小结
通过以上步骤,您可以为本地 Spring Boot 项目启用 HTTPS 支持。使用自签名证书适合开发和测试,而在生产环境中,建议使用由可信证书颁发机构签发的 SSL 证书。