最終效果洁墙,插上uKey(專業(yè)術(shù)語叫uKey趁冈,長得像一個普通的u盤)皂岔,可以訪問某個web系統(tǒng),拔掉uKey单芜,web系統(tǒng)顯示沒有權(quán)限
一 基礎(chǔ)概念
單向認(rèn)證:當(dāng)客戶訪問服務(wù)器的時候蜕该,客戶方去校驗服務(wù)器是否是自己想去訪問的服務(wù)器;
雙向認(rèn)證:不僅僅需要用戶瀏覽器校驗服務(wù)器數(shù)字證書洲鸠,還需要服務(wù)器端驗證用戶是否是可信的堂淡;
二 單向認(rèn)證流程(springboot項目為例)
1 制作證書
直接利用keytools工具生成
keytool -genkey -alias client -keyalg RSA -keystore client.p12 -validity 360 -storepass 123456 -storetype PKCS12 -keysize 2048 -dname "CN=127.0.0.1, OU=dazhen, O=dazhen, L=CD, ST=CD, C=CN"
2 配置證書
## 服務(wù)端
server.ssl.trust-store=D:\\ca\\www\\127\\server.p12
server.ssl.trust-store-password=123456
server.ssl.trust-store-type=JKS
server.ssl.trust-store-provider=SUN
# need 是必須要驗證,want是可選驗證(想不通如果可選還做單向驗證干嘛)
server.ssl.client-auth=need
## 客戶端(也就是瀏覽器)
安裝server.p12證書到瀏覽器即可
3 效果展示
啟動項目扒腕,打開網(wǎng)站绢淀,會彈出如下,證明單向驗證成功瘾腰;
三 雙向認(rèn)證流程(springboot項目為例)
1 制作證書
## 制作server.p12 服務(wù)端證書
keytool -genkey -alias server -keyalg RSA -keystore server.p12 -validity 360 -storepass 123456 -storetype PKCS12 -keysize 2048 -dname "CN=127.0.0.1, OU=dazhen, O=dazhen, L=CD, ST=CD, C=CN"
## 制作client.p12客戶端證書
keytool -genkey -alias client -keyalg RSA -keystore client.p12 -validity 360 -storepass 123456 -storetype PKCS12 -keysize 2048 -dname "CN=127.0.0.1, OU=dazhen, O=dazhen, L=CD, ST=CD, C=CN"
## 將client.p12導(dǎo)出到client.cer
keytool -keystore client.p12 -export -alias client -file client.cer
## 將client.cer導(dǎo)入server.p12
keytool -import -file client.cer -keystore server.p12
## 查看server.p12 中已經(jīng)存在的證書列表
keytool -list -keystore server.p12 -storepass 123456 -storetype PKCS12
2 配置證書
# 服務(wù)器端證書檢驗
server.ssl.key-store=D:\\ca\\www\\127\\server.p12
server.ssl.key-store-password=123456
server.ssl.key-store-type=PKCS12
server.ssl.key-alias=server
## 客戶端證書校驗
server.ssl.trust-store=D:\\ca\\www\\127\\server.p12
server.ssl.trust-store-password=123456
server.ssl.trust-store-type=JKS
server.ssl.trust-store-provider=SUN
server.ssl.client-auth=need
3 配置ukey環(huán)境(為了將p12證書按照到ukey)
ukey只是一個介質(zhì)皆的,里面需要有一個容器軟件,可以安裝p12證書蹋盆。
電腦上還需按照一個管理程序费薄,2個功能内狗,
1,ukey查到電腦上义锥,可以識別出ukey里的證書(單向認(rèn)證是把證書安裝在瀏覽器柳沙,雙向認(rèn)證是把證書安裝在ukey);
2拌倍,可以對識別的ukey里的證書進行增刪查赂鲤,如下圖所示
剛開始都不知道這個東西叫uKey,一頓谷歌柱恤,看到ukey里也需一些管理軟件数初,時間+精力都不允許(里面大多是C#語言開發(fā)的)。想起萬能的taobao梗顺,最后在一家店鋪55大洋買了ukey(帶說明書)
各種嘗試泡孩,咨詢售后,最后總結(jié)出來安裝軟件步驟(win10)
win10系統(tǒng)需要EPASS1000ND(支持win10).zip
1寺谤,先安裝D:\EPASS1000ND(支持win10)\win2.5\pki\V2.5-20150919\PKIcdrom\CDROM_CN\PKI\Redist\cn\eps1knd_stdSimpChinese.exe
2仑鸥,再安裝D:\EPASS1000ND(支持win10)\win2.5\pki\V2.5-20150919\PKIcdrom\CDROM_CN\PKI\Utilities\ePassNgMgr.exe
3,初始化D:\EPASS1000ND(支持win10)\win2.5\pki\V2.5-20150919\PKIcdrom\CDROM_CN\PKI\Utilities\PKIINIT\PKIInit_M32.exe
4 效果驗收
a 不插ukey,打開系統(tǒng)变屁,提示無權(quán)限眼俊;
b 插上ukey,打開系統(tǒng)粟关,瀏覽器彈出如下窗口
c 點擊確定疮胖,正常訪問網(wǎng)站;
d 拔掉ukey+關(guān)閉瀏覽器器闷板,再次打開網(wǎng)站澎灸,提示無權(quán)限;
注意:如果bc步驟后遮晚,只拔ukey性昭,因為瀏覽器對證書有一段時間緩存,所以還會繼續(xù)正常訪問網(wǎng)站
pc上需要安裝的識別uKey證書的軟件在這里
https://download.csdn.net/download/WANTAWAY314/12923620