最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot實現的https單向認證和雙向認證(java生成證書)

 更新時間:2024年04月12日 09:07:51   作者:布道師小羊  
springboot https單向認證和雙向認證,本文主要介紹了springboot實現的https單向認證和雙向認證,具有一定的參考價值,感興趣的可以了解一下

1、java生成HTTPS證書:

既然是雙向驗證,就需要雙方的密鑰,我們服務端稱為localhost,而客戶端稱為client。需要生成雙方的密鑰文件,并把對方的cert導入自己的密鑰文件里。整個過程如下:
注意:密碼統一為:changeit,這個密碼自己可以設置,然后記住就可以了。
生成服務端密鑰文件localhost.jks:

keytool -genkey -alias localhost -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -keystore localhost.jks -dname CN=localhost,OU=Test,O=pkslow,L=Guangzhou,C=CN -validity 731 -storepass changeit -keypass changeit

導出服務端的cert文件:

keytool -export -alias localhost -file localhost.cer -keystore localhost.jks

生成客戶端的密鑰文件client.jks:

keytool -genkey -alias client -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -keystore client.jks -dname CN=client,OU=Test,O=pkslow,L=Guangzhou,C=CN -validity 731 -storepass changeit -keypass changeit

導出客戶端的cert文件:

keytool -export -alias client -file client.cer -keystore client.jks

把客戶端的cert導入到服務端:

keytool -import -alias client -file client.cer -keystore localhost.jks

把服務端的cert導入到客戶端:

keytool -import -alias localhost -file localhost.cer -keystore client.jks

檢驗服務端是否具有自己的private key和客戶端的cert:

keytool -list -keystore localhost.jks

為了建立連接,應該要把客戶端的密鑰文件給谷歌瀏覽器使用。因為JKS是Java的密鑰文件格式,我們轉換成通用的PKCS12格式如下:
轉換JKS格式為P12:

keytool -importkeystore -srckeystore client.jks -destkeystore client.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass changeit -deststorepass changeit -srckeypass changeit -destkeypass changeit -srcalias client -destalias client -noprompt

成功執(zhí)行完上述步驟后,會生成5個文件:

  • 服務端密鑰文件: localhost.jks
  • 服務端cert文件:localhost.cer
  • 客戶端密鑰文件:client.jks
  • 客戶端cert文件:client.cer
  • 客戶端能識別的密鑰文件:client.p12

在這里插入圖片描述

2、配置SpringBoot:

在application.properties或者application.yml中去配置即可:

server.port=443

server.ssl.enabled=true
server.ssl.key-store-type=JKS
server.ssl.key-store=classpath:localhost.jks
server.ssl.key-store-password=changeit
server.ssl.key-alias=localhost

server.ssl.trust-store=classpath:localhost.jks
server.ssl.trust-store-password=changeit
server.ssl.trust-store-provider=SUN
server.ssl.trust-store-type=JKS
server.ssl.client-auth=need

需要將生成的localhost.jks文件放到springboot項目中的resource文件夾下,然后重啟項目,就可以了
需要分別配置Key Store和Trust Store的文件、密碼等信息,即使是同一個文件。
需要注意的是,server.ssl.client-auth有三個可配置的值:none、want和need。雙向驗證應該配置為need;none表示不驗證客戶端;want表示會驗證,但不強制驗證,即驗證失敗也可以成功建立連接。

3、用Postman測試雙向驗證:

完成密鑰文件準備和配置后,啟動SpringBootbian便可以了,我這里用谷歌瀏覽器訪問如下:

在這里插入圖片描述

然后我將生成的證書導入到瀏覽器中,重啟瀏覽器繼續(xù)訪問測試接口,就會提示我們選擇證書,點擊我們導入的證書就可以正常訪問了。
如何在瀏覽器中導入證書呢?打開谷歌瀏覽器,找到設置->隱私設置和安全性->安全->管理設備證書->導入,按步驟提示導入就可以了,導入的是client.p12這個文件,

在這里插入圖片描述

需要輸入密碼就是我們前面設置的changeit,當然你設置了其他的密碼,正常輸入就可以了。

在這里插入圖片描述

然后重啟瀏覽器再次訪問,記得是https開頭的URL,就會提示我們選擇證書,選擇我們導入的證書,點擊確定就可以了。

在這里插入圖片描述

至于單向認證只需要我們將server.ssl.client-auth的值改為none就可以了,這樣我們就不需要在客戶端瀏覽器導入證書了,訪問遇到警告,點擊濾過繼續(xù)訪問就可以正常訪問了

在這里插入圖片描述

至此整個認證過程就結束了,更多相關springboot https單向認證和雙向認證內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • eclipse創(chuàng)建java項目并運行的詳細教程講解

    eclipse創(chuàng)建java項目并運行的詳細教程講解

    eclipse是java開發(fā)的ide工具,是大部分java開發(fā)人員的首選開發(fā)工具,可是對于一些新Java人員來說,不清楚eclipse怎么運行項目?這篇文章主要給大家介紹了關于eclipse創(chuàng)建java項目并運行的相關資料,需要的朋友可以參考下
    2023-04-04
  • 詳解rabbitmq創(chuàng)建queue時arguments參數注釋

    詳解rabbitmq創(chuàng)建queue時arguments參數注釋

    這篇文章主要介紹了rabbitmq創(chuàng)建queue時arguments參數注釋,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 利用線程實現動態(tài)顯示系統時間

    利用線程實現動態(tài)顯示系統時間

    編寫Applet小程序,通過在HTML文檔中接收參數,顯示當前的系統時間,需要的朋友可以參考下
    2015-10-10
  • El表達式使用問題javax.el.ELException:Failed to parse the expression的解決方式

    El表達式使用問題javax.el.ELException:Failed to parse the expression

    今天小編就為大家分享一篇關于Jsp El表達式使用問題javax.el.ELException:Failed to parse the expression的解決方式,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java上傳文件到服務器指定文件夾實現過程圖解

    Java上傳文件到服務器指定文件夾實現過程圖解

    這篇文章主要介紹了Java上傳文件到服務器指定文件夾實現過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • springboot?接收LocalDateTime方式

    springboot?接收LocalDateTime方式

    這篇文章主要介紹了springboot?接收LocalDateTime方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Java自動化設置PDF文檔屬性的示例代碼

    Java自動化設置PDF文檔屬性的示例代碼

    在現代開發(fā)中,PDF 文件已經成為廣泛使用的文檔格式,本文將展示如何使用 Java 設置 PDF 文檔的屬性,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2026-01-01
  • Java SSM框架如何配置靜態(tài)資源加載

    Java SSM框架如何配置靜態(tài)資源加載

    這篇文章主要介紹了Java SSM框架如何配置靜態(tài)資源加載,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Java中LambdaQueryWrapper的常用方法詳解

    Java中LambdaQueryWrapper的常用方法詳解

    這篇文章主要給大家介紹了關于Java中LambdaQueryWrapper常用方法的相關資料,lambdaquerywrapper是一個Java庫,用于構建類型安全的Lambda表達式查詢,需要的朋友可以參考下
    2023-11-11
  • springboot如何使用mongo做日志存儲

    springboot如何使用mongo做日志存儲

    這篇文章主要介紹了springboot如何使用mongo做日志存儲方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06

最新評論

儋州市| 泗水县| 闽侯县| 镇坪县| 文水县| 察雅县| 宁陵县| 清河县| 梧州市| 巴彦淖尔市| 武冈市| 钦州市| 肇庆市| 溆浦县| 榆中县| 阳城县| 孟州市| 聊城市| 梨树县| 黄浦区| 高碑店市| 昆明市| 永福县| 内丘县| 宝兴县| 杭州市| 方城县| 永和县| 巴马| 大庆市| 泾阳县| 神木县| 长垣县| 津南区| 江津市| 五峰| 岱山县| 永清县| 新野县| 博乐市| 昂仁县|