SpringBoot 網(wǎng)站升級(jí)為 HTTPS
點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”
優(yōu)質(zhì)文章,第一時(shí)間送達(dá)
76套java從入門(mén)到精通實(shí)戰(zhàn)課程分享
通過(guò)keytool 生成ssl 證書(shū)
keytool?-genkey?-alias?tomcat?-dname?"CN=Andy,OU=kfit,O=kfit,L=HaiDian,ST=BeiJing,C=CN"?-storetype?PKCS12?-keyalg?RSA?-keysize?2048?-keystore?keystore.p12?-validity?365
命令的各個(gè)參數(shù)的含義:
?-genkey :生成key;
?-alias?:key的別名;
?-dname:指定證書(shū)擁有者信息
?-storetype :密鑰庫(kù)的類型為JCEKS。常用的有JKS(默認(rèn)),JCEKS(推薦),PKCS12,BKS,UBER。每個(gè)密鑰庫(kù)只可以是其中一種類型。
?-keyalg :DSA或RSA算法(當(dāng)使用-genkeypair參數(shù)),DES或DESede或AES算法(當(dāng)使用-genseckey參數(shù));
?-keysize :密鑰的長(zhǎng)度為512至1024之間(64的倍數(shù))
?-keystore :證書(shū)庫(kù)的名稱
?-validity :?指定創(chuàng)建的證書(shū)有效期多少天
?
?dname的值詳解:
??CN(Common?Name名字與姓氏)
??OU(Organization?Unit組織單位名稱)
??O(Organization組織名稱)
??L(Locality城市或區(qū)域名稱)
??ST(State州或省份名稱)
??C(Country國(guó)家名稱)
在目錄:C:\Users\?當(dāng)前用戶?下就會(huì)看到一個(gè)文件keystore.p12
Spring Boot中啟用HTTPS
在 application.properties中配置HTTPS
#https端口號(hào)
server.port=81
#http端口號(hào)
http-port=82
#證書(shū)的路徑.
server.ssl.key-store=classpath:keystore.p12
#證書(shū)密碼,請(qǐng)修改為您自己證書(shū)的密碼
server.ssl.key-store-password=123456
#秘鑰庫(kù)類型
server.ssl.keyStoreType=PKCS12
#證書(shū)別名
server.ssl.keyAlias=tomcat
將HTTP請(qǐng)求重定向到HTTPS
/**
?*?@ClassName?:?TomcatHttpConfig
?*?@Description?:
?*?@Author?:?YWR
?*?@Date:?2021-01-12?22:56
?*/
@Configuration
public?class?TomcatHttpConfig?{
????@Value("${http-port}")
????private?int?port;
????@Value("${server.port}")
????private?int?sslPort;
????@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(redirectConnector());
????????return?tomcat;
????}
????private?Connector?redirectConnector()?{
????????Connector?connector?=?new?Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
????????connector.setScheme("http");
????????connector.setPort(port);
????????connector.setSecure(false);
????????connector.setRedirectPort(sslPort);
????????return?connector;
????}
}
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。
本文鏈接:
https://blog.csdn.net/laow1314/article/details/112549767
粉絲福利:Java從入門(mén)到入土學(xué)習(xí)路線圖
??????

??長(zhǎng)按上方微信二維碼?2 秒
感謝點(diǎn)贊支持下哈?
評(píng)論
圖片
表情
