admin管理员组

文章数量:1547946

最终效果,插上uKey(专业术语叫uKey,长得像一个普通的u盘),可以访问某个web系统,拔掉uKey,web系统显示没有权限


一 基础概念

单向认证:当客户访问服务器的时候,客户方去校验服务器是否是自己想去访问的服务器;
双向认证:不仅仅需要用户浏览器校验服务器数字证书,还需要服务器端验证用户是否是可信的;

二 单向认证流程(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 配置证书

 


## 服务端
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证书到浏览器即可

image.png

3 效果展示

启动项目,打开网站,会弹出如下,证明单向验证成功;

image.png

三 双向认证流程(springboot项目为例)

1 制作证书

 

## 制作server.p12 服务端证书
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导出到client.cer
keytool -keystore client.p12 -export -alias client -file client.cer

## 将client.cer导入server.p12
keytool -import -file client.cer -keystore server.p12

## 查看server.p12 中已经存在的证书列表
keytool -list -keystore server.p12 -storepass 123456 -storetype PKCS12

2 配置证书

 

# 服务器端证书检验
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环境(为了将p12证书按照到ukey)

ukey只是一个介质,里面需要有一个容器软件,可以安装p12证书。
电脑上还需按照一个管理程序,2个功能,
1,ukey查到电脑上,可以识别出ukey里的证书(单向认证是把证书安装在浏览器,双向认证是把证书安装在ukey);
2,可以对识别的ukey里的证书进行增删查,如下图所示

 

image.png

image.png

刚开始都不知道这个东西叫uKey,一顿谷歌,看到ukey里也需一些管理软件,时间+精力都不允许(里面大多是C#语言开发的)。想起万能的taobao,最后在一家店铺55大洋买了ukey(带说明书)

各种尝试,咨询售后,最后总结出来安装软件步骤(win10)

 

win10系统需要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,打开系统,提示无权限;
b 插上ukey,打开系统,浏览器弹出如下窗口

image.png

c 点击确定,正常访问网站;
d 拔掉ukey+关闭浏览器器,再次打开网站,提示无权限;
注意:如果bc步骤后,只拔ukey,因为浏览器对证书有一段时间缓存,所以还会继续正常访问网站

pc上需要安装的识别uKey证书的软件在这里
https://download.csdn/download/WANTAWAY314/12923620

本文标签: 双向uKeyHTTPS