使用SpringBoot配置https(SSL證書)
SpringBoot配置https(SSL證書)
最近在做微信小程序,https是必須條件
僅需三步
SpringBoot2.x版本
對比一下這個小鎖頭是不是莫名有點好看?
嚶為很久以前就備案有域名,就直接申請瞭SSL證書,幾分鐘就下來瞭
1.把tomcat目錄裡面的.jks文件
復制到項目裡面(註意路徑)
2.配置application.yml
ssl: key-store: classpath:server.jks key-store-password: 申請時設置的密碼 keyStoreType: JKS
3.接下來是重定向
在啟動類底下添加;(把指定的http8080端口重定向到https8888)
@Bean public ServletWebServerFactory servletContainer() { TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(); tomcat.addAdditionalTomcatConnectors(createHTTPConnector()); return tomcat; } private Connector createHTTPConnector() { Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); //同時啟用http(8080)、https(8443)兩個端口 connector.setScheme("http"); connector.setSecure(false); connector.setPort(8080); connector.setRedirectPort(443); return connector; }
ok
SpringBoot 改造成https訪問
SpringBoot https改造
1.生成密鑰證書
生成命令:keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
(1)關鍵字解釋:
alias
:密鑰別名
storetype
:指定密鑰倉庫類型
keyalg
:生證書的算法名稱,RSA是一種非對稱加密算法
keysize
:證書大小
keystore
:生成的證書文件的存儲路徑
validity
:證書的有效期
(2)生成證書註意:
在輸入證書生成命令之後,會提示輸入:
- 密鑰庫口令:證書密碼,在後面的項目中配置證書時用到
- 姓氏:一般沒什麼用,在瀏覽器中查看證書時會顯示,用於正式場合的證書還是需要填寫標準。
- 組織單位:證書使用單位信息,一般沒什麼用,在瀏覽器中查看證書時會顯示,用於正式場合的證書還是需要填寫標準。
- 組織單位名稱:證書使用單位名稱,一般沒什麼用,在瀏覽器中查看證書時會顯示,用於正式場合的證書還是需要填寫標準。
- 所在的城市或區域名稱:瀏覽器中查看證書信息時會顯示。
- 所在的省/市/自治區名稱:瀏覽器中查看證書信息時會顯示。
- 單位的雙字母國傢/地區代碼:國傢或地區編碼,瀏覽器中查看證書信息時會顯示。
2.將生成的密鑰證書拷貝到項目中的resource中
也可以不拷貝到項目中,後面配置路徑時配置密鑰證書的絕對路徑即可
3.修改項目配置文件application.properties
增加如下配置項:
server.ssl.key-store=classpath:keystore.p12
(密鑰文件路徑,也可以配置絕對路徑)server.ssl.key-store-password=aqjcpt
(密鑰生成時輸入的密鑰庫口令)server.ssl.keyStoreType=PKCS12
(密鑰類型,與密鑰生成命令一致)server.ssl.keyAlias=tomcat
(密鑰別名,與密鑰生成命令一致)
4.啟動項目,直接訪問項目即可
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- SpringBoot添加SSL證書的方法
- SpringBoot中配置SSL的同時支持http和https訪問
- 關於Keytool配置 Tomcat的HTTPS雙向認證的問題
- springboot配置ssl後啟動一直是端口被占用的解決
- Tomcat使用https配置實戰教程