发布正式环境涉及到域名的话,好像不是这个操作。
一、使用jdk自带的keytools创建证书
//打开cmd,输入命令
keytool -genkey -alias tomcat -keyalg RSA -keystore ./server.keystore
输入密钥库口令:pagegle
再次输入新口令:pagegle
您的名字与姓氏是什么?
[Unknown]: lyg
您的组织单位名称是什么?
[Unknown]: lyg
您的组织名称是什么?
[Unknown]: lyg
您所在的城市或区域名称是什么?
[Unknown]: Nanjing
您所在的省/市/自治区名称是什么?
[Unknown]: Nanjing
该单位的双字母国家/地区代码是什么?
[Unknown]: china
CN=kaibowang, OU=yuxuelian, O=yuxuelian, L=chengdu, ST=chengdushi, C=china是否正确?
[否]: y
输入 <tomcat> 的密钥口令
(如果和密钥库口令相同, 按回车):
再次输入新口令:
二、创建完成后,可在用户根目录查看生成的keystore文件。将上一步生成的keystone文件复制到项目的根目录,在application.properties添加如下配置
server:
port: 8781 # 443 https的默认访问端口,
#Https 配置 HttpsConfig 打开
ssl:
#你生成的证书名字
key-store: https.keystore
#密钥库密码
key-store-password: pagegle
key-store-type: JKS
key-alias: tomcat
三、https已配置好,可以访问了。下面http访问自动转https。
package com.jsyl.stfw.config;
import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class HttpsConfig {
@Bean
public Connector connector(){
Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
//Connector监听的http的端口号
connector.setPort(8080);
connector.setSecure(false);
//监听到http的端口号后转向到的https的端口号
connector.setRedirectPort(8781);
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;
}
}