欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

uKey双向认证https

程序员文章站 2022-05-01 09:38:23
...

最终效果,插上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证书到浏览器即可

uKey双向认证https

image.png

3 效果展示

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

uKey双向认证https

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里的证书进行增删查,如下图所示

 

uKey双向认证https

image.png

uKey双向认证https

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,打开系统,浏览器弹出如下窗口

uKey双向认证https

image.png

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

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

相关标签: 分享发现

上一篇: 搭建https

下一篇: nginx ssl 双向认证