------------记录自己的第一次 经作参考
1、去腾讯云(阿里云…)申请证书 — 我买的书腾讯云的域名和服务器
申请时间大概30分钟
2、下载解压证书
解压是这个样子 — 你想要的都有
3、把Tomcat 中的 .jks文件放入项目resources根目录下
4、在application.properties中配置
#端口
server.port=443
#你生成的证书名字
server.ssl.key-store=classpath:xxx.jks
#密钥库密码
server.ssl.key-store-password=xxx
#证书类型
server.ssl.keyStoreType=JKS
#请求头大小
server.tomcat.max-http-form-post-size=32768
server.max-http-header-size=32768
5、在主类中添加以下代码
@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(initiateHttpConnector());
return tomcat;
}
/**
* 让我们的应用支持HTTP是个好想法,但是需要重定向到HTTPS,
* 但是不能同时在application.properties中同时配置两个connector,
* 所以要以编程的方式配置HTTP connector,然后重定向到HTTPS connector
* @return Connector
*/
private Connector initiateHttpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(80); // http端口
connector.setSecure(false);
connector.setRedirectPort(443); // application.properties中配置的https端口
return connector;
}