使用GoDaddy SSL憑證啟用Spring Boot HTTPS

Hank Li
5 min readMay 19, 2018
雲林西螺 西螺大橋下

為什麼要寫這篇文章?不是就一個憑證?

最近用Spring Boot寫Line Bot,Line Bot的webhook需要用到HTTPS,剛好看到GoDaddy買.app的網域贈送SSL憑證,想說好吧!就給它買下去吧!

興高采烈開始申請憑證,才發現Spring Boot的憑證安裝沒想像中簡單,花了一整天的時間才完成,所以才產生這篇文章…

來安裝憑證吧!

1.建立JKS

使用Java的Keytool建立,在要安裝憑證的主機上,開啟Terminal輸入以下指令,在<>中的值請改成您的值:

$ keytool -genkey -alias <domain> -keyalg RSA -keystore <keystore.jks> -keysize 2048

這時會需要輸入一些資料,請注意這裡的first and last name請輸入你的domain(例如:google.com)

2.產生CSR

繼續輸入以下指令,在<>中的值請改成您的值:

$ keytool -certreq -alias <domain> -keystore <keystore.jks> -file <domain.csr> 

這時會產生一個CSR,執行

$ cat domain.csr

這時會跑出一組認證要求碼,將此組要求碼複製到GoDaddy網站上

3.到GoDaddy換憑證

在您的產品,找到SSL憑證並按下管理,找到憑證簽名申請將剛複製的要求碼貼上(在此簡略某些步驟,請按照您的網頁操作)

過一會後會收到GoDaddy申請通過通知,就可以下載憑證了,我選擇的伺服器類型是Tomcat,下載後解壓縮後,會有兩個CER檔跟一個PEM檔

4.將CER轉成P12

Spring Boot的SSL憑證需要P12檔,所以必須再將CER轉成P12

繼續輸入以下指令,在<>中的值請改成您的值:

$ keytool -import -trustcacerts -alias intermediate -file <intermediate.crt> -keystore <keystore.jks>

這裡的-alias是輸入intermediate,<intermediate.crt>請輸入剛憑證檔名中有bundle的CER檔

之後繼續輸入以下指令,在<>中的值請改成您的值:

$ keytool -import -trustcacerts -alias <domain> -file <domain.crt> -keystore <keystore.jks>

最後輸入以下指令,在<>中的值請改成您的值:

$ keytool -importkeystore -srckeystore <keystore.jks> -destkeystore <keystore.p12> -srcstoretype JKS -deststoretype PKCS12 -deststorepass <password> -srcalias <domain> -destalias <domain>

這裡的keystore.jks是第一部產生的JKS檔,keystore.p12是想產生的p12檔名,password是p12的密碼,-srcalias是來源alias,-destalias是目標alias

完成以上步驟後就能產生P12檔了!!!

5.設定Spring Boot

將P12憑證放到專案的resources目錄下

P12憑證

然後設定application.yml(application.properties也是同樣的設定)

application.yml設定啟用SSL

然後成功執行Spring Boot就完成囉!!!

感想

萬萬沒想到申請一個憑證竟然花了我一天,希望以後有需要的朋友能快速建立自己的SSL憑證!

如有任何問題或批評指教,歡迎您告訴我!謝謝各位的閱讀.

--

--