1. 程式人生 > >【spring boot】配置ssl證書實現https

【spring boot】配置ssl證書實現https

【前言】這裡介紹在spring boot中配置真正的ssl證書,而不是自己隨便玩玩的那種證書。

【申請證書】以COMODO申請證書為例:

  • 首先在服務上用openssl生成公鑰和私鑰

openssl req -new -key myPrivateKey.key -out server.csr

myPrivateKey.key自己儲存,server.csr提交給代理商進行簽名,代理商簽名完成後會給出 yourDomain.crt檔案
  • 注意我們是在Java環境中,常用的證書形式有p12格式的,jks格式的,所以需要做轉換,以p12為例

openssl pkcs12 -export -clcerts -in yourDomain.crt -inkey myPrivateKey.key -out server.p12

這樣生成了spring boot上可以用的私鑰格式檔案 server.p12

在這個轉換的過程中要求輸入一個密碼,請記住這個密碼

【配置spring boot】

  • 首先用命令查詢一下別名

keytool -list -keystore server.p12

執行該命令會提示你輸入密碼,就是上面設定的密碼,輸入密碼後會顯示:

您的金鑰庫包含 1 個條目

1, 2017-1-7, PrivateKeyEntry

注意這個1這是我們執行這個命令的目的
  • 把server.p12複製到spring boot的 src/main/resources/ 目錄下,和application.properties平級
  • 在application.properties中新增如下內容

server.port=8443

server.ssl.key-store:classpath:server.p12

server.ssl.key-store-password: 密碼

server.ssl.keyStoreType: PKCS12

server.ssl.keyAlias: 1

8443是埠號
classpath就是指目錄 src/main/resources/ ,注意冒號,跟上祕鑰檔名
密碼就是上面輸入過的密碼內容
我們用的p12是PKCS12
別名,1,privateKey都是1【結語】直接在springboot裡面配置是為了應對簡單的服務,真正的系統會在nginx上配置證書。