Spring Boot配置SSL证书(开启https)

本文介绍了如何在Spring Boot应用中配置SSL证书,实现HTTPS安全连接,并配置HTTP自动跳转到HTTPS。首先,从阿里云或腾讯云等平台申请免费SSL证书,下载jks格式文件并配置到`application.properties`。接着,详细说明了证书配置的步骤,包括证书文件的位置和密码设置。最后,通过在启动类中添加代码,实现了HTTP到HTTPS的自动跳转,确保网站始终使用安全连接。

https会使我们的网站更加安全,起码看起来似乎好一些。这里分享Spring Boot配置https的步骤。

1,去阿里云或者腾讯云等等申请SSL证书

个人用户申请免费证书即可。阿里云免费证书申请方法

然后在我们的控制台-SSL证书里面可以添加免费证书:

然后点证书申请:

根据其中指示填写完信息后,会让你给域名添加相应TXT记录,添加后即可申请。大约1-15分钟后证书申请完毕。

然后在列表中点击下载按钮:

下载jks格式:

然后会得到个压缩包,里面有jks证书密码

2,Spring Boot配置证书

在Spring Boot配置文件application.properties中添加以下的配置:

#SSL证书设置
server.ssl.key-store=证书jks文件所在位置
server.ssl.key-store-password=证书密码
server.ssl.keyStoreType=JKS

根据自己的配置修改。

建议一般证书文件放在项目文件夹\src\main\resources下。例如我的证书文件是ssl.jks放在项目文件夹\src\main\resources中,密码是123456,那么我的配置如下:

#SSL证书设置
server.ssl.key-store=classpath:ssl.jks
server.ssl.key-store-password=123456
server.ssl.keyStoreType=JKS

路径需要说明的是,一般classpath:开头的表示jar包内路径,而在Spring Boot项目中项目文件夹\src\main\resources文件夹即可对应为classpath的根目录。

当然也可以放在jar包外其余位置,例如放在项目文件夹中的ssl文件夹中,那么路径就以file:开头配置:

server.ssl.key-store=file:ssl/ssl.jks

这样就要最后保证生成的jar要和上述ssl文件夹放在同一目录,并保证运行目录就是jar所在目录。

这样在开启项目,就是https了!

3,配置http自动跳转https

在启动类中加入如下代码:

/**
 * http自动跳转https
 */
@Bean
public ServletWebServerFactory servletContainer() {
	TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
		@Override
		protected void postProcessContext(Context context) {
			SecurityConstraint securityConstraint = new SecurityConstraint();
			securityConstraint.setUserConstraint("CONFIDENTIAL");
			SecurityCollection collection = new SecurityCollection();
			collection.addPattern("/*");
			securityConstraint.addCollection(collection);
			context.addConstraint(securityConstraint);
		}
	};
	tomcat.addAdditionalTomcatConnectors(redirectConnector());
	return tomcat;
}

private Connector redirectConnector() {
	Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
	connector.setScheme("http");
	connector.setPort(8801); // 原http端口
	connector.setSecure(false);
	connector.setRedirectPort(8443); // 跳转的https端口,也就是我们配置文件中配置的项目端口
	return connector;
}

注意这个Context类是org.apache.catalina包下的。

根据自己的需要修改上述第二个方法中http端口和https端口。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值