1. 程式人生 > >Spring boot專案配置SSL

Spring boot專案配置SSL

SSL(Secure Socket Layer,安全套接層)是為了網路通訊提供安全及資料完整性的一種安全協議,SSL在網路傳輸層對網路連線進行加密。
SSL協議可分為兩層:

  • SSL記錄協議(SSL Record Protocol),它建立在可靠的傳輸協議(如TCP)之上,為高層提供資料封裝、壓縮、加密。
  • SSL握手協議(SSL Handshake Protocol),它建立在SSL記錄協議之上,用於在實際資料傳輸開始前,通訊雙方進行身法認證,協商加密演算法,交換加密金鑰等。

在基於B/S的Web應用中,是通過HTTPS來實現SSL的,HTTPS是以安全為目標的HTTP通道,簡單講就是HTTP安全版,即在HTTP下加入SSL層,HTTP的安全基礎是SSL。

生成證書

因為是加密,所以需要為SSL生成一個證書,這個證書可以來自簽名的,也可以是從SSL證書授權中心獲得的。
下面以jdk自帶工具keytool(釋出安卓專案也需要用到的)為例,生成一個自授權證書例子。
執行 keytool -genkey -alias anla7856 -keyalg RSA
注意要加上-keyalg 屬性指明某一種演算法加密,否則預設使用老演算法,瀏覽器將不承認而無法訪問報錯
Error code: SSL_ERROR_NO_CYPHER_OVERLAP:
這裡寫圖片描述

接著,將生成的.keystore檔案,複製到專案根目錄下(或其他)。

修改properties配置

在會載入的properties檔案裡面加上以下幾句:

#server
server.port=8989
server.ssl.key-store=.keystore
server.ssl.key-store-password=123456
server.ssl.keyStoreType=JKS
server.ssl.keyAlias=anla7856

更改埠可以有或者沒有。
重新執行專案,通過訪問[https://localhost:8989/](https://localhost:8989/) 即可