SpringBoot配置Tomcat支持https协议

本文详细介绍了如何在SpringBoot项目中配置HTTPS,包括使用keytool生成密钥库、配置application.properties文件等步骤,帮助开发者轻松实现接口的安全传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

最近在项目开发中需要让自己的后端Restful接口支持https,在参考了很多前辈们的博客后总结了一些.

SpringBoot配置支持https
1.首先找到jdk的jre位置,在到jre中的bin目录下打开命令行窗口,输入以下命令:
在这里插入图片描述
keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
在这里插入图片描述
2.然后在你的根目录下面会看到一个keystore的文件,如下图所示:
在这里插入图片描述
3.将它移到你的spring boot项目中的resources目录下
在这里插入图片描述
4.最后在application.properties中添加以下配置:
server.port=8888
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=123456(此处密码为第一步中创建.p12文件时你输入的口令)
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=tomcat
在这里插入图片描述
5.最后启动你的spring boot项目即可用https的方式访问你的接口了。

### 如何在Spring Boot中配置Tomcat支持HTTPS证书 要在Spring Boot应用程序中配置嵌入式Tomcat服务器以支持HTTPS协议并加载SSL/TLS证书,可以按照以下方法实现。 #### 1. 准备Java KeyStore (JKS) 文件 为了使Spring Boot中的嵌入式Tom猫能够处理HTTPS请求,需要准备一个包含私钥和公钥的Java密钥库文件(通常扩展名为`.jks`)。可以通过命令行工具如Keytool来创建此文件[^1]: ```bash keytool -genkeypair -alias myapp -keyalg RSA -keystore tomcat.keystore -storepass changeit -validity 365 ``` 上述命令会生成一个新的密钥对,并将其保存到指定路径下的 `tomcat.keystore` 中。注意替换默认密码 (`changeit`) 和其他参数以匹配实际需求。 #### 2. 配置application.properties 或 application.yml 接下来,在项目的资源目录下编辑 `application.properties` 或者 YAML 格式的配置文件,添加必要的属性以便启用 HTTPS 并指向 JKS 文件位置以及相应的密码[^3]: 对于 `.properties` 文件: ```properties server.port=8443 server.ssl.key-store=D:/developTools/apache-tomcat-idm/tomcat.keystore server.ssl.key-store-password=1111111 server.ssl.key-alias=myapp ``` 如果是采用YAML格式,则应如下所示设置: ```yaml server: port: 8443 ssl: key-store: D:/developTools/apache-tomcat-idm/tomcat.keystore key-store-password: '111111' key-alias: myapp ``` 这里定义的服务端口为标准的安全HTTP端口号(8443),同时指定了之前创建好的密钥仓库及其访问凭证。 #### 3. 启动失败排查指南 如果启动过程中遇到错误提示类似于下面这样的堆栈跟踪信息时, ```plaintext Caused by: java.io.IOException: Keystore was tampered with, or password was incorrect... at org.apache.tomcat.util.net.SSLUtilBase.getStore(SSLUtilBase.java:217)... ... at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:197)[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE] ``` 这表明要么是提供的Keystore Path不正确,或者输入了错误的密码[^2]。因此需仔细核验这些细节是否无误。 #### 4. 整合身份认证机制 当已经成功设置了基于TLS/SSL保护的数据传输之后,还可以进一步增强安全性通过集成Spring Security框架来进行用户的身份验证与授权控制。其中核心组件之一便是AuthenticationManager接口,它负责执行具体的登录逻辑校验工作流程[^4]^。 另外值得注意的是,在不同场景下可以选择适合自己的多种认证方式比如表单提交、基本Authentications等等[^5]。 --- ### 示例代码片段展示如何自定义SecurityConfig类 以下是关于如何编写一个简单的Spring Security配置例子用于演示目的: ```java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.requiresChannel().anyRequest().requiresSecure(); //强制所有的请求都走https http.authorizeRequests() .antMatchers("/login").permitAll()//允许所有人访问登陆页面 .anyRequest().authenticated();//其余所有URL必须经过验证才能访问 http.formLogin().and().httpBasic(); } } ``` 以上展示了怎样利用HttpSecurity对象去规定哪些API应该被加密连接所覆盖,并且还包含了基础形式的身份确认选项。 ---
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值