配置SpringBoot项目使用https协议
一、创建证书
1、在这就不使用阿里云或腾讯云申请的SSL免费证书了,使用JDK自带的keytool工具来生成证书:
在linux中查找JDK的安装目录\bin\keytool,使用以下命令:
## -validity 3650 指的是有效时间
## tomcat 指的是别名
## tomcat.keystore 需要生成的证书,将证书根据开发要求放到指定位置,一般放到/resources/conf/ 下
./keytool -genkey -alias tomcat -keyalg RSA -keystore /asop/apache-tomcat8.5.73/conf/tomcat.keystore -validity 3650
输入密钥库口令: zxcvbnm
再次输入新口令: zxcvbnm
您的名字与姓氏是什么?
[Unknown]: localhost 这里最好写服务器的IP或者域名
您的组织单位名称是什么?
[Unknown]: sichu
您的组织名称是什么?
[Unknown]: yanfa 可随意写
您所在的城市或区域名称是什么?
[Unknown]: beijing 可随意写
您所在的省/市/自治区名称是什么?
[Unknown]: beijing 可随意写
该单位的双字母国家/地区代码是什么?
[Unknown]: cn
CN=www.bo.org, OU=xinwei, O=xinwei, L=bj, ST=bj, C=cn是否正确?
[否]: y
然后要求我们输入tomcat的主密码,我们设置跟上面第一次输入的密码相同,按回车
2.以上步骤执行完,会出现提示让更换pkcs12格式,复制提示中的指令,并粘贴执行再次输入以上密码即可,以下是我自己的操作命令:
# 换不换都一样,没啥太大影响,既然提示了就老实的跟着换吧.
keytool -importkeystore -srckeystore /asop/apache-tomcat-8.5.73/conf/tomcat.keystore -destkeystore /asop/apache-tomcat-8.5.73/conf/tomcat.keystore -deststoretype pkcs12
- 配置好以上操作我们的证书就已经生成了,可在配置的路径下查看配置好的证书,就可以执行第二步操作了。
二、配置项目
1、在springboot 项目启动类中加上以下代码
@Bean
public Connector connector(){
Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(80);
connector.setSecure(false);
connector.setRedirectPort(8080); #这里的8080可更改为项目需要端口,其它不做修改
return connector;
}
@Bean
public TomcatServletWebServerFactory tomcatServletWebServerFactory(Connector connector){
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(connector);
return tomcat;
}
三、配置文件修改
## 这里配置的是证书存放的位置
server.ssl.key-store=/asop/apache-tomcat-8.5.73/conf/tomcat.keystore
## 这里是查看证书需要的密钥
server.ssl.key-store-password=zxcvbnm
## 这是以上步骤申请证书时的那个别名
server.ssl.key-alias=tomcat
## 这里的PKCS12格式配置的是一种互联网标准
server.ssl.key-store-type=PKCS12
四、启动
1、以上操作执行完毕后,就可以启动程序查看,此时http已更改为https请求;