欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot實(shí)現(xiàn)的https單向認(rèn)證和雙向認(rèn)證(java生成證書(shū))

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

1、java生成HTTPS證書(shū):

既然是雙向驗(yàn)證,就需要雙方的密鑰,我們服務(wù)端稱(chēng)為localhost,而客戶(hù)端稱(chēng)為client。需要生成雙方的密鑰文件,并把對(duì)方的cert導(dǎo)入自己的密鑰文件里。整個(gè)過(guò)程如下:
注意:密碼統(tǒng)一為:changeit,這個(gè)密碼自己可以設(shè)置,然后記住就可以了。
生成服務(wù)端密鑰文件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

導(dǎo)出服務(wù)端的cert文件:

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

生成客戶(hù)端的密鑰文件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

導(dǎo)出客戶(hù)端的cert文件:

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

把客戶(hù)端的cert導(dǎo)入到服務(wù)端:

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

把服務(wù)端的cert導(dǎo)入到客戶(hù)端:

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

檢驗(yàn)服務(wù)端是否具有自己的private key和客戶(hù)端的cert:

keytool -list -keystore localhost.jks

為了建立連接,應(yīng)該要把客戶(hù)端的密鑰文件給谷歌瀏覽器使用。因?yàn)镴KS是Java的密鑰文件格式,我們轉(zhuǎn)換成通用的PKCS12格式如下:
轉(zhuǎn)換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í)行完上述步驟后,會(huì)生成5個(gè)文件:

  • 服務(wù)端密鑰文件: localhost.jks
  • 服務(wù)端cert文件:localhost.cer
  • 客戶(hù)端密鑰文件:client.jks
  • 客戶(hù)端cert文件:client.cer
  • 客戶(hù)端能識(shí)別的密鑰文件: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項(xiàng)目中的resource文件夾下,然后重啟項(xiàng)目,就可以了
需要分別配置Key Store和Trust Store的文件、密碼等信息,即使是同一個(gè)文件。
需要注意的是,server.ssl.client-auth有三個(gè)可配置的值:none、want和need。雙向驗(yàn)證應(yīng)該配置為need;none表示不驗(yàn)證客戶(hù)端;want表示會(huì)驗(yàn)證,但不強(qiáng)制驗(yàn)證,即驗(yàn)證失敗也可以成功建立連接。

3、用Postman測(cè)試雙向驗(yàn)證:

完成密鑰文件準(zhǔn)備和配置后,啟動(dòng)SpringBootbian便可以了,我這里用谷歌瀏覽器訪問(wèn)如下:

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

然后重啟瀏覽器再次訪問(wèn),記得是https開(kāi)頭的URL,就會(huì)提示我們選擇證書(shū),選擇我們導(dǎo)入的證書(shū),點(diǎn)擊確定就可以了。

在這里插入圖片描述

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

在這里插入圖片描述

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

相關(guān)文章

  • Java設(shè)計(jì)模式之享元模式

    Java設(shè)計(jì)模式之享元模式

    這篇文章介紹了Java設(shè)計(jì)模式之享元模式,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • SpringBoot整合MybatisPlus的教程詳解

    SpringBoot整合MybatisPlus的教程詳解

    這篇文章主要介紹了SpringBoot整合MybatisPlus的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 源碼解析springbatch的job運(yùn)行機(jī)制

    源碼解析springbatch的job運(yùn)行機(jī)制

    這篇文章主要介紹了springbatch的job是如何運(yùn)行的,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • 解析Java多線(xiàn)程之常見(jiàn)鎖策略與CAS中的ABA問(wèn)題

    解析Java多線(xiàn)程之常見(jiàn)鎖策略與CAS中的ABA問(wèn)題

    本篇文章介紹了常見(jiàn)的鎖策略,并說(shuō)明了synchronized關(guān)鍵字加的鎖類(lèi)型不是單一一種鎖類(lèi)型的,根據(jù)可重入鎖與非可重入鎖引出了死鎖的概念與死鎖條件,最后介紹了CAS指令以及CAS鎖產(chǎn)生的ABA問(wèn)題及其解決方案,需要的朋友可以參考下
    2022-06-06
  • SpringBoot同時(shí)支持HTTPS與HTTP的實(shí)現(xiàn)示例

    SpringBoot同時(shí)支持HTTPS與HTTP的實(shí)現(xiàn)示例

    本文主要介紹了SpringBoot同時(shí)支持HTTPS與HTTP的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • IDEA報(bào)java:?java.lang.OutOfMemoryError:?Java?heap?space錯(cuò)誤解決辦法

    IDEA報(bào)java:?java.lang.OutOfMemoryError:?Java?heap?space錯(cuò)誤

    這篇文章主要給大家介紹了關(guān)于IDEA報(bào)java:?java.lang.OutOfMemoryError:?Java?heap?space錯(cuò)誤的解決辦法,文中將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • Java CAS機(jī)制的一些理解

    Java CAS機(jī)制的一些理解

    這篇文章主要介紹了Java CAS機(jī)制的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-05-05
  • 詳談spring boot中幾種常見(jiàn)的依賴(lài)注入問(wèn)題

    詳談spring boot中幾種常見(jiàn)的依賴(lài)注入問(wèn)題

    這篇文章主要介紹了spring boot中幾種常見(jiàn)的依賴(lài)注入問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 給Java菜鳥(niǎo)的一些建議_關(guān)于Java知識(shí)點(diǎn)歸納(J2EE and Web 部分)

    給Java菜鳥(niǎo)的一些建議_關(guān)于Java知識(shí)點(diǎn)歸納(J2EE and Web 部分)

    下面小編就為大家?guī)?lái)一篇給Java菜鳥(niǎo)的一些建議_關(guān)于Java知識(shí)點(diǎn)歸納(J2EE and Web 部分)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • javafx實(shí)現(xiàn)五子棋游戲

    javafx實(shí)現(xiàn)五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了javafx實(shí)現(xiàn)五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05

最新評(píng)論