最终效果,插上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.exe2,再安装D:\EPASS1000ND(支持win10)\win2.5\pki\V2.5-20150919\PKIcdrom\CDROM_CN\PKI\Utilities\ePassNgMgr.exe3,初始化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.net/download/WANTAWAY314/12923620

uKey双向认证https相关推荐

  1. java 调用tomcat api,Tomcat采用双向认证https协议通过JavaAPI调用(一)配置SSL

    双向认证(个人理解): 客户端认证: 客户端通过浏览器访问某一网站时,如果该网站为HTTPS网站,浏览器会自动检测系统中是否存在该网站的信任证书,如果没有信任证书,浏览器一般会拒绝访问,IE会有一个继 ...

  2. nginx配置ssl加密(单双向认证、部分https)

    nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始采用的是全站加密,所有访问http:80的请求强制转换( ...

  3. Android应用实现Https双向认证

    为什么需要双向认证 Https保证的是信道的安全,即客户端和服务端通信报文的安全.但是无法保证中间人攻击,所以双向认证解决的问题就是防止中间人攻击. 中间人攻击(Man-in-the-MiddleAt ...

  4. ssl介绍以及双向认证和单向认证原理 (转)

    证书介绍 SSL安全证书可以自己生成,也可以通过第三方的CA(Certification Authority)认证中心付费申请颁发. SSL安全证书包括: 1.       CA证书,也叫根证书或中间 ...

  5. ssl介绍以及双向认证和单向认证原理

    证书介绍 SSL安全证书可以自己生成,也可以通过第三方的CA(Certification Authority)认证中心付费申请颁发. SSL安全证书包括: 1.       CA证书,也叫根证书或中间 ...

  6. android webview单向认证,android 让webview支持自签名证书https 双向认证(SSL)

    最近完成一个项目,安全级别比较高.所以涉及到https双向认证,在网上找了很多资料都没有完美的解决方案.最后参考了org.sandrob.sslexample的实现方式,结合实际情况才完成该技术难题, ...

  7. Apache httpd设置HTTPS双向认证

    一.环境 httpd: 2.4.4  openssl:1.0.1  os:ubuntu 12.04 LTS 二.场景 我准备在httpd上配置一个HTTPS双向认证,既向客户端表明自己的身份,也只允许 ...

  8. Https单向认证和双向认证介绍

    一.Http HyperText Transfer Protocol,超文本传输协议,是互联网上使用最广泛的一种协议,所有WWW文件必须遵循的标准.HTTP协议传输的数据都是未加密的,也就是明文的,因 ...

  9. Windows 环境 Tomcat 的 HTTPS 单向认证和双向认证的配置

    2019独角兽企业重金招聘Python工程师标准>>> 单向认证,说的是浏览器验证服务器的真实性,双向认证是服务器也验证浏览器用户的真实性. 1.使用keytool生成keystor ...

  10. TurboMail邮件系统支持HTTPS双向认证

    2019独角兽企业重金招聘Python工程师标准>>> HTTP单向认证已经被普遍应用,而对企业邮箱安全保密要求更加严格的企事业单位,例如国家保密局等单位,为了达到闭环的安全加密要求 ...

最新文章

  1. disk boot failure,insert system disk and press enter
  2. 了解Java中的内存泄漏
  3. 深度学习核心技术精讲100篇(二十三)-深度学习系列计算广告与推荐系统有哪些区别?使用的主流模型有哪些?
  4. 国行iphone第一次安装APP网络状况
  5. 互联网日报 | 小米跻身千亿美金俱乐部;企业微信活跃用户数达1.3亿;蔚来即将发布旗下首款轿车...
  6. pandas插入新列
  7. JAVA学习-JAVA实现对象描述(java面向对象特性)
  8. Redis报错#MISCONF Redis is configured to save RDB snapshots, but is currently not
  9. [2019杭电多校第二场][hdu6602]Longest Subarray(线段树)
  10. c语言从入门到放弃(初识)
  11. stm32f207/stm32f407擦除内部flash讲解
  12. Gif截图工具——GifCam
  13. 410c 上安装中文版本的答题器游戏demo
  14. 智能快递柜在小区的应用
  15. 低多边形(Low Poly)风格会不会成为移动游戏时代的8bit像素
  16. python-递归——猴子吃桃
  17. SEO人员,为什么要做流量过滤,如何操作?
  18. Excel查找匹配VLOOKUP用法
  19. Windows 和Linux利用tftp协议传送文件
  20. Linux 文件系统学习之 EROFS 源码阅读笔记

热门文章

  1. php读取excel怎么读取sheet2,PHP读取Excel 之 Spreadsheet_Excel_Reader
  2. C语言通讯录管理系统开发
  3. 四个免费好用的临时邮箱
  4. 2021最新一线互联网大厂常见高并发面试题解析,快手Java面试算法题
  5. empire-CVE-2018-19462
  6. 物料编码在PDM与ERP集成中的应用研究
  7. Linux的使用_尚硅谷视频学习笔记
  8. docker CI部署样例
  9. 学习Java技术Eclipse版本的选择
  10. 【CSS】关于表单样式