SpringBoot配置HTTPS实战指南

需积分: 28 7 下载量 23 浏览量 更新于2024-09-10 收藏 472KB PDF 举报
"这篇文档是关于如何在SpringBoot应用中启用HTTPS的实践总结,由作者在2018年8月7日整理。" 在SpringBoot应用中启用HTTPS主要是为了提供安全的数据传输,确保用户的隐私信息不被窃取。启用HTTPS涉及到几个关键步骤: 1. 获取SSL证书:SSL(Secure Sockets Layer)证书是实现HTTPS的基础,它用于验证服务器的身份并加密通信。你可以通过两种方式获取证书: - 自行生成:使用JDK自带的`keytool`工具,生成PKCS12格式的本地证书。例如,命令如下: ``` keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650 ``` 这将创建一个名为`keystore.p12`的证书文件,有效期为3650天。 - 购买:从证书授权中心(CA)购买,可能也需要使用`keytool`进行转换。 2. 在SpringBoot中配置HTTPS:SpringBoot内嵌的Tomcat服务器默认使用8080端口启动HTTP服务。要在SpringBoot应用中启用HTTPS,你需要在`application.properties`配置文件中指定相关的SSL设置。配置示例如下: ```properties server.port: 8443 # HTTPS监听的端口 server.ssl.key-store: classpath:keystore.p12 # 证书路径,这里指定了在类路径下的keystore.p12 server.ssl.key-store-password: mypassword # 证书的别名密码 server.ssl.keyStoreType: PKCS12 # 证书类型 ``` 3. HTTP重定向到HTTPS:为了强制所有HTTP请求都通过安全的HTTPS连接,你可以在SpringBoot应用中添加额外的配置,将HTTP请求自动重定向到HTTPS。这通常通过自定义`WebServerFactoryCustomizer`来实现,但文档中没有提供具体的代码示例。 SpringBoot官方推荐在`application.properties`中配置HTTPS,因为HTTPS配置相对复杂,涉及更多的安全参数。如果你需要同时运行HTTP和HTTPS,那么其中一个必须通过编程方式进行配置。 启用HTTPS后,你的SpringBoot应用将在8443端口上提供HTTPS服务,用户可以通过`https://yourdomain:8443`来访问,确保了数据传输的安全性。请注意,实际部署时,需要替换配置中的`keystore.p12`为你的实际证书文件路径,并使用正确的密码。