spring boot 项目配置https服务
怀旧网个人博客网站地址:怀旧网,博客详情:spring boot 项目配置https服务
第一步:申请ssl证书
在自己的域名注册网站可以申请,建议使用腾讯的ssl证书申请服务(免费)
申请时需要绑定需要添加https的域名:(一定要是需要填加的域名才有效)
第二步:下载证书并导入项目
下载自己的ssl证书,我这边下载的是.jks类型证书
然后将内容解压出来,并且将 .jks文件放在你的项目resources目录下,建议创建一个ssl文件件,然后将文件放入进去
第三步:配置yml
配置详情如下
# 服务端口号
server:
port: 443 # https默认端口为443这边就不要写80了
reactive:
session:
timeout: PT360H
# https 配置
ssl: # 这下面的配置按照要求来就可以
enabled: true
# 保存SSL证书的秘钥库的路径
key-store: classpath:ssl/xxxxx.jks # 这边就是刚刚保存的.jks文件路径
key-store-password: XXXXX # 这边就填写下载下来的包里面的password文件里里面的内容
# 证书类型
key-store-type: JKS # 下载的什么类型的证书就写对应的配置就行
第四步:配置端口自动跳转
这个步骤可以选做--目的是当用户通过80访问当前端口的时候可以直接自动跳转到443端口(目的是访问http自动跳转到https)
下面的配置类代码--直接照着写就行
// 文件名: HttpsConfig
import org.apache.catalina.connector.Connector;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* https配置,将http请求全部转发到https
* @author P_P
*/
@Configuration
public class HttpsConfig {
//SpringBoot-v2.0+配置方式
@Bean
public ServletWebServerFactory servletContainer() {
//创建Tomcat服务器工厂实例
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
//添加此tomcat实例其它连接参数
tomcat.addAdditionalTomcatConnectors(createHTTPConnector());
return tomcat;
}
/**
* 配置tomcat自定义连接参数
* @return
*/
private Connector createHTTPConnector() {
//Connector port有两种运行模式(NIO和APR),选择NIO模式:protocol="org.apache.coyote.http11.Http11NioProtocol"
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
//启用http(80)端口
connector.setScheme("http");
//设置安全连接标志,该标志将被分配给通过该连接接收的请求
//secure新的安全连接标志
//如果connector.setSecure(true),则http使用http, https使用https; 分离状态,因此设置false
connector.setSecure(false);
//http默认端口
connector.setPort(80);
//重定向证书端口443,便于http自动跳转https
connector.setRedirectPort(443);
return connector;
}
}
完成以上步骤就可以完成https的安全访问链接配置