文章目錄
使用JDK自帶的工具生成證書
使用FreeSSL提供的證書
使用JDK自帶的工具生成證書
1.確保安裝了JDK并正確配置了環境變量;
2.進入你的JAVA_HOME目錄中的bin目錄;
3.在這個目錄下執行
//keytool-genkey-alias(別名)-dname"CN=(姓名),OU=(組織單位名稱),O=(組織名稱),L=(城市名稱),ST=(省),C=(國家)"-storetype(密鑰倉庫類型)-keyalg(生證書的算法名稱)-keysize(密鑰長度,證書大小)-keystore(指定生成證書的位置和證書名稱)-validity(證書有效期,天單位) 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的證書,將其放入resources目錄中,并在application.properties或application.yml中配置
#https端口號. server.port:443 #證書的路徑. server.ssl.key-store:classpath:keystore.p12 #證書密碼,請修改為您自己證書的密碼. server.ssl.key-store-password:123456 #秘鑰庫類型 server.ssl.keyStoreType:PKCS12 #證書別名 #server.ssl.keyAlias:uublog
若指定的端口非443,則在訪問的時添加具體的端口號
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.部署
若部署環境為windows,直接啟動即可;若部署環境是Linux,先開通443端口,在進行部署
#判斷443端口是否已經開放 firewall-cmd--query-port=443/tcp #若未開放,則配置開啟,并重新加載配置 firewall-cmd--add-port=443/tcp--permanent firewall-cmd--reload
7.以JDK生成證書的方式足夠簡單,但在Chrome和Edge瀏覽器上依舊顯示不安全,因此下面就使用FreeSSL提供的免費證書
圖片 圖片
使用FreeSSL提供的證書
FreeSSL.cn 是一個免費提供 HTTPS 證書申請、HTTPS 證書管理和 HTTPS 證書到期提醒服務的網站,旨在推進 HTTPS 證書的普及與應用,簡化證書申請的流程。
1.首先你得有一個域名,推薦國外的GoDaddy,價格合適且不需要備案就可以進行解析;
圖片 圖片
2.FreeSSL網站上有對不同品牌的介紹了和證書生成方式的介紹,請參閱網站;
3.一頓操作之后,相信你已經下載證書到本地了,將證書放入resources目錄中,并在配置文件中添加配置
#https端口號. server.port:443 #證書的路徑. server.ssl.key-store:classpath:***.jks #證書密碼,請修改為您自己證書的密碼. server.ssl.key-store-password:*** #秘鑰庫類型 server.ssl.keyStoreType:JKS
4.將http重定向到https,代碼同上
5.打包并部署
圖片 圖片
通過查看日志,http請求成功重定向到到了https,在Chrome瀏覽器中也標示為安全網站
-
WINDOWS
+關注
關注
3文章
3541瀏覽量
88623 -
端口
+關注
關注
4文章
963瀏覽量
32051 -
JDK
+關注
關注
0文章
81瀏覽量
16592
原文標題:SpringBoot 配置 HTTPS 安全證書的兩種方案
文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論