SpringBoot添加SSL證書的方法
一、先進行域名的購買
域名購買完畢,進行DNS的解析,我用的是阿裡雲的,服務器與域名都同時使用的阿裡雲
記錄值這裡填你的服務器的IP 地址
二、申請SSL證書
阿裡雲提供免費的SSL證書,一個人可以申請20個
找到這裡
提交獲取
然後進行證書的申請
填個人信息,填完一步步保存提交後,證書申請會需要綁定DNS解析
我的是阿裡雲的,直接去DNS控制臺添加就行,你們的根據自己的去相應的添加
記錄值改為TXT,主機記錄跟記錄值,直接復制給的就行
顯示這樣說明成功
然後根據自己的需要選擇證書的下載
這裡我用的是SpringBoot項目裡面內置瞭tomcat所以下載瞭tomcat的
下載得到一個壓縮包,解壓後得到一個密鑰跟密碼(txt裡面的是密碼)
三、轉換
找到jdk的安裝目錄進入bin,用管理員身份運行命令行窗口
輸入
keytool -importkeystore -srckeystore latteitcjz.pfx -destkeystore latte.jks -srcstoretype PKCS12 -deststoretype JKS #latteitcjz.pfx為你下載的證書的目錄和名字 #新生成的名字latte.jks
輸入兩次一樣的密碼也就是txt文件裡面的密碼
然後會生成一個別名記得別名的名字
四、配置項目
將上面生成的latte.jks復制到resources目錄下與application.yml同級,然後進行application的配置
server: ssl: key-store: classpath:latte.jks #這裡是配置你剛才部署在resources下的".jks"文件 key-password: latte #這裡是你解壓後的"jks-password.txt"文件中的密碼 key-store-type: JKS key-alias: alias key-store-password: latte #註意一定配這個密碼,不要隻配上面的,不然會報keystore password was incorrect #密鑰口令和密鑰庫口令一致 port: 443 http: port: 90
在啟動類,添加以下的代碼
@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; } @Bean public Connector redirectConnector() { Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL); connector.setScheme("http"); //監聽90端口 connector.setPort(90); connector.setSecure(false); //重定向與443 //一個服務器隻有一個443端口,註意d connector.setRedirectPort(443); return connector;
啟動看看,如果報443端口占用問題,可能是你電腦安裝有虛擬機,虛擬機vm那個占用瞭
打開命令行窗口
netstat -aon|findstr “443” ,
看有沒有占用的,如果有
kill它: tasklist |findstr “進程號”
如果殺不掉,打卡任務管理器找到該進程號,結束任務,沒有問題後,上傳服務器測試就行
到此這篇關於SpringBoot添加SSL證書的方法的文章就介紹到這瞭,更多相關SpringBoot SSL證書內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- springBoot server.port=-1的含義說明
- springboot2如何禁用自帶tomcat的session功能
- 使用SpringBoot配置https(SSL證書)
- Springboot 使用內置tomcat禁止不安全HTTP的方法
- 解決springboot application.properties server.port配置問題