Springboot配置腾讯云HTTPS证书
一丶在腾讯云申请SSL证书
首先登录腾讯云找到SSL证书并申请
填好名称和邮箱
私钥密码是不能找回的需要记住。如记不住可以不填
如果不填在Tomcat目录下将会有keystorePass.txt这个文件
填了私钥密码不会有这个文件
等待验证后就可以下载文件了这里我是Springboot项目所以选择Tomcat
二丶Springboot项目配置
1.把jks文件复制到resource目录下
2.修改application.yml文件
把端口改成443
server:
port: 443
ssl:
# 改成你的jks文件名
key-store: classpath:your jks file
key-store-type: JKS
#改成你的密钥(设置了密钥就填你的密钥,没有设置就打开keystorePass.txt这个文件,复制里面的密钥)
key-store-password: your passworkd
3.修改启动类文件
@SpringBootApplication
public class QuestionApplication {
public static void main(String[] args) {
SpringApplication.run(QuestionApplication.class, args);
}
/**
* http重定向到https
* @return
*/
@Bean
public TomcatServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint constraint = new SecurityConstraint();
constraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
constraint.addCollection(collection);
context.addConstraint(constraint);
}
};
tomcat.addAdditionalTomcatConnectors(httpConnector());
return tomcat;
}
@Bean
public Connector httpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
//Connector监听的http的端口号
connector.setPort(80);
connector.setSecure(false);
//监听到http的端口号后转向到的https的端口号
connector.setRedirectPort(443);
return connector;
}
}
三丶启动
如上述文件正确配置项目能正常启动
如不能正常启动(一般情况是密钥不正确)并会报出以下的异常
Caused by: java.security.UnrecoverableKeyException: Password verification failed
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:780) ~[na:1.8.0_241]
... 42 common frames omitted
最后把项目上传到服务器。访问你的域名将会看到连接是安全的就证明成功了!
大功告成!!!