spring boot,https,雙向ssl認證
一、生成伺服器端證書
1、在cmd視窗執行命令:keytool -genkey -v -alias server -keyalg RSA -storetype PKCS12 -keystore c:\keystore\server.keystore,
密碼隨意,自己記住就行。
二、生成客戶端證書
1、在cmd視窗執行命令:keytool -genkey -v -alias test -keyalg RSA -storetype PKCS12 -keystore c:\keystore\test.p12,
密碼隨意,自己記住就行。
三、匯出客戶端證書
1、匯出客戶端證書公鑰cer檔案。
在cmd視窗執行命令,輸入之前自己設定的密碼:
keytool -export -alias test -keystore c:\keystore\test.p12 -storetype PKCS12 -rfc -file c:\keystore\test.cer
2、將客戶端公鑰匯入伺服器證書。
在cmd視窗執行命令,輸入之前自己設定的密碼:
keytool -import -v -file c:\keystore\test.cer -keystore c:\keystore\server.keystore
四、安裝客戶端證書
雙擊c:\keystore目錄下的test.p12檔案,點選下一步:
再次點選下一步:
輸入生成證書時設定的密碼,點選下一步:
將證書檔案儲存為個人,點選下一步:
點選完成:
四、新增springboot支援
1、將伺服器證書檔案server.keystore放到專案的根目錄下
2、編輯application.yml檔案
3、啟動專案,看到https則成功了。
五、測試
1、新增一個java的過濾器,加上一行程式碼,打好斷點:
2、用谷歌瀏覽器,訪問一個過濾器攔截的介面,顯示選擇證書的選項,則表示個人ssl證書安裝成功了:
3、在過濾器的斷點中檢視是否已經獲取到了客戶端證書,如果能看到以下資訊,則表示成功了:
至此基於springboot的ssl雙向認證已經完成了。