生成本地證書
- 進入本地jdk安裝路徑下的bin文件夾找到keytool.exe
- 在此目錄進入cmd 輸入命令
keytool -genkey -alias tomcat -keyalg RSA -keystore ./server.keystore
- 按照提示進行操作
輸入密鑰庫口令:123456
再次輸入新口令:123456
您的名字與姓氏是什麼?
[Unknown]: kaibowang
您的組織單位名稱是什麼?
[Unknown]: yuxuelian
您的組織名稱是什麼?
[Unknown]: yuxuelian
您所在的城市或區域名稱是什麼?
[Unknown]: chengdu
您所在的省/市/自治區名稱是什麼?
[Unknown]: chengdushi
該單位的雙字母國家/地區代碼是什麼?
[Unknown]: china
CN=kaibowang, OU=yuxuelian, O=yuxuelian, L=chengdu, ST=chengdushi, C=china是否正確?
[否]: y
輸入 <tomcat> 的密鑰口令
(如果和密鑰庫口令相同, 按回車):
再次輸入新口令:
Warning:
JKS 密鑰庫使用專用格式。建議使用 "keytool -importkeystore -srckeystore C:\Users\Administrator\.keystore -destkeystore C:\Users\Administrator\.keystore -deststoretype pkcs12" 遷移到行業標準格式 PKCS12。
新建springboot項目,將上一步生成的keystone文件複製到項目的根目錄,在application.properties添加如下配置
server.port=8888
server.ssl.key-store=server.keystore
server.ssl.key-alias=tomcat
server.ssl.enabled=true
server.ssl.key-store-password=123456
server.ssl.key-store-type=JKS
http訪問自動轉https訪問
@Configuration
public class HttpsConfig {
@Bean
public Connector connector(){
Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(80);
connector.setSecure(false);
connector.setRedirectPort(8888);
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;
}
}
結束