1、獲得https的證書。
途徑:
1、自己使用openssl生成自簽證書。
2、到freessl網(wǎng)站可以免費(fèi)申請(qǐng)90天到期證書。
https://freessl.org/#
步驟:
填入自己的域名

圖片.png
選擇日期

圖片.png
自動(dòng)生成CSR

圖片.png
選擇免費(fèi)

圖片.png
使用DNS驗(yàn)證

圖片.png
域名沒問題DNS驗(yàn)證會(huì)給你一個(gè),域名以及key,key-value。
來到云服務(wù)器控制臺(tái)選擇域名選項(xiàng),如阿里云
首先來到域名解析

圖片.png
添加記錄

圖片.png
修改記錄選CNAME
主機(jī)記錄填入key
解析線路選擇境外
記錄值key-value

圖片.png
然后點(diǎn)擊verify domain,完成驗(yàn)證,因?yàn)槭峭饩W(wǎng)驗(yàn)證的時(shí)候翻一下,否則會(huì)驗(yàn)證失敗。

圖片.png
點(diǎn)擊下載證書

圖片.png
解壓后得到

圖片.png
3、到對(duì)應(yīng)云服務(wù)中進(jìn)行ssl證書申請(qǐng)。
2、不同服務(wù)器需要不同類型的證書文件。使用keyManager來生成
https://www.keymanager.org/
因?yàn)閟pringboot使用嵌入式的tomcat我們需要獲得tomcat對(duì)應(yīng)證書文件。我們下載好keymanager。
導(dǎo)入獲取的證書文件,全選所有進(jìn)行導(dǎo)入。

導(dǎo)入文件.png

圖片.png
點(diǎn)擊導(dǎo)出得到j(luò)ks后綴的文件,私鑰加密密碼隨便輸入一個(gè)。

圖片.png
最后得到j(luò)ks文件

圖片.png
3、對(duì)springboot進(jìn)行相關(guān)配置
把jks文件放入resource文件夾下
對(duì)application.yml進(jìn)行配置
server:
port: 9100
ssl:
enabled: true
key-store: classpath:***.jks
key-store-type: JKS
key-store-password: ***
在springboot啟動(dòng)類中配置自動(dòng)從http跳轉(zhuǎn)https
@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監(jiān)聽的http的默認(rèn)端口號(hào)
connector.setPort(8080);
connector.setSecure(false);
//監(jiān)聽到http的端口號(hào)后轉(zhuǎn)向到的https的端口號(hào),也就是項(xiàng)目配置的port
connector.setRedirectPort(9100);
return connector;
}