最終效果,插上uKey(專業(yè)術(shù)語叫uKey,長得像一個(gè)普通的u盤),可以訪問某個(gè)web系統(tǒng),拔掉uKey,web系統(tǒng)顯示沒有權(quán)限
一 基礎(chǔ)概念
單向認(rèn)證:當(dāng)客戶訪問服務(wù)器的時(shí)候,客戶方去校驗(yàn)服務(wù)器是否是自己想去訪問的服務(wù)器;
雙向認(rèn)證:不僅僅需要用戶瀏覽器校驗(yàn)服務(wù)器數(shù)字證書,還需要服務(wù)器端驗(yàn)證用戶是否是可信的;
二 單向認(rèn)證流程(springboot項(xiàng)目為例)
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 是必須要驗(yàn)證,want是可選驗(yàn)證(想不通如果可選還做單向驗(yàn)證干嘛)
server.ssl.client-auth=need
## 客戶端(也就是瀏覽器)
安裝server.p12證書到瀏覽器即可

3 效果展示
啟動項(xiàng)目,打開網(wǎng)站,會彈出如下,證明單向驗(yàn)證成功;

三 雙向認(rèn)證流程(springboot項(xiàng)目為例)
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ù)器端證書檢驗(yàn)
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
## 客戶端證書校驗(yàn)
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只是一個(gè)介質(zhì),里面需要有一個(gè)容器軟件,可以安裝p12證書。
電腦上還需按照一個(gè)管理程序,2個(gè)功能,
1,ukey查到電腦上,可以識別出ukey里的證書(單向認(rèn)證是把證書安裝在瀏覽器,雙向認(rèn)證是把證書安裝在ukey);
2,可以對識別的ukey里的證書進(jìn)行增刪查,如下圖所示


剛開始都不知道這個(gè)東西叫uKey,一頓谷歌,看到ukey里也需一些管理軟件,時(shí)間+精力都不允許(里面大多是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 效果驗(yàn)收
a 不插ukey,打開系統(tǒng),提示無權(quán)限;
b 插上ukey,打開系統(tǒng),瀏覽器彈出如下窗口

c 點(diǎn)擊確定,正常訪問網(wǎng)站;
d 拔掉ukey+關(guān)閉瀏覽器器,再次打開網(wǎng)站,提示無權(quán)限;
注意:如果bc步驟后,只拔ukey,因?yàn)闉g覽器對證書有一段時(shí)間緩存,所以還會繼續(xù)正常訪問網(wǎng)站
pc上需要安裝的識別uKey證書的軟件在這里
https://download.csdn.net/download/WANTAWAY314/12923620