文章目錄
使用JDK自帶的工具生成證書(shū)
使用FreeSSL提供的證書(shū)
使用JDK自帶的工具生成證書(shū)
1.確保安裝了JDK并正確配置了環(huán)境變量;
2.進(jìn)入你的JAVA_HOME目錄中的bin目錄;
3.在這個(gè)目錄下執(zhí)行
//keytool-genkey-alias(別名)-dname"CN=(姓名),OU=(組織單位名稱),O=(組織名稱),L=(城市名稱),ST=(省),C=(國(guó)家)"-storetype(密鑰倉(cāng)庫(kù)類型)-keyalg(生證書(shū)的算法名稱)-keysize(密鑰長(zhǎng)度,證書(shū)大小)-keystore(指定生成證書(shū)的位置和證書(shū)名稱)-validity(證書(shū)有效期,天單位) keytool-genkey-aliasuublog-dname"CN=Lhc,OU=SCYD,O=SCYD,L=CD,ST=SiChuan,C=CN"-storetypePKCS12-keyalgRSA-keysize2048-keystorekeystore.p12-validity365
4.獲取名為keystore.p12的證書(shū),將其放入resources目錄中,并在application.properties或application.yml中配置
#https端口號(hào). server.port:443 #證書(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:uublog
若指定的端口非443,則在訪問(wèn)的時(shí)添加具體的端口號(hào)
5.將http重定向到https
packagecom.lhc.uublog.utils; importorg.apache.catalina.Context; importorg.apache.catalina.connector.Connector; importorg.apache.tomcat.util.descriptor.web.SecurityCollection; importorg.apache.tomcat.util.descriptor.web.SecurityConstraint; importorg.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; importorg.springframework.context.annotation.Bean; importorg.springframework.context.annotation.Configuration; /** *@ProjectName:uublog *@Package:com.lhc.uublog.utils *@ClassName:SSLUtils *@Author:lhc *@Description:Http重定向到Https */ @Configuration publicclassSSLUtils{ @Bean publicConnectorconnector(){ Connectorconnector=newConnector("org.apache.coyote.http11.Http11NioProtocol"); connector.setScheme("http"); connector.setSecure(false); connector.setPort(80); connector.setRedirectPort(443); returnconnector; } @Bean publicTomcatServletWebServerFactorytomcatServletWebServerFactory(Connectorconnector){ TomcatServletWebServerFactorywebServerFactory=newTomcatServletWebServerFactory(){ @Override protectedvoidpostProcessContext(Contextcontext){ SecurityConstraintsecurityConstraint=newSecurityConstraint(); securityConstraint.setUserConstraint("CONFIDENTIAL"); SecurityCollectionsecurityCollection=newSecurityCollection(); securityCollection.addPattern("/*"); securityConstraint.addCollection(securityCollection); context.addConstraint(securityConstraint); } }; webServerFactory.addAdditionalTomcatConnectors(connector); returnwebServerFactory; } }
6.部署
若部署環(huán)境為windows,直接啟動(dòng)即可;若部署環(huán)境是Linux,先開(kāi)通443端口,在進(jìn)行部署
#判斷443端口是否已經(jīng)開(kāi)放 firewall-cmd--query-port=443/tcp #若未開(kāi)放,則配置開(kāi)啟,并重新加載配置 firewall-cmd--add-port=443/tcp--permanent firewall-cmd--reload
7.以JDK生成證書(shū)的方式足夠簡(jiǎn)單,但在Chrome和Edge瀏覽器上依舊顯示不安全,因此下面就使用FreeSSL提供的免費(fèi)證書(shū)
圖片 圖片
使用FreeSSL提供的證書(shū)
FreeSSL.cn 是一個(gè)免費(fèi)提供 HTTPS 證書(shū)申請(qǐng)、HTTPS 證書(shū)管理和 HTTPS 證書(shū)到期提醒服務(wù)的網(wǎng)站,旨在推進(jìn) HTTPS 證書(shū)的普及與應(yīng)用,簡(jiǎn)化證書(shū)申請(qǐng)的流程。
1.首先你得有一個(gè)域名,推薦國(guó)外的GoDaddy,價(jià)格合適且不需要備案就可以進(jìn)行解析;
圖片 圖片
2.FreeSSL網(wǎng)站上有對(duì)不同品牌的介紹了和證書(shū)生成方式的介紹,請(qǐng)參閱網(wǎng)站;
3.一頓操作之后,相信你已經(jīng)下載證書(shū)到本地了,將證書(shū)放入resources目錄中,并在配置文件中添加配置
#https端口號(hào). server.port:443 #證書(shū)的路徑. server.ssl.key-store:classpath:***.jks #證書(shū)密碼,請(qǐng)修改為您自己證書(shū)的密碼. server.ssl.key-store-password:*** #秘鑰庫(kù)類型 server.ssl.keyStoreType:JKS
4.將http重定向到https,代碼同上
5.打包并部署
圖片 圖片
通過(guò)查看日志,http請(qǐng)求成功重定向到到了https,在Chrome瀏覽器中也標(biāo)示為安全網(wǎng)站
-
WINDOWS
+關(guān)注
關(guān)注
3文章
3545瀏覽量
88694 -
端口
+關(guān)注
關(guān)注
4文章
964瀏覽量
32079 -
JDK
+關(guān)注
關(guān)注
0文章
81瀏覽量
16596
原文標(biāo)題:SpringBoot 配置 HTTPS 安全證書(shū)的兩種方案
文章出處:【微信號(hào):AndroidPush,微信公眾號(hào):Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論