uKey双向认证https
最终效果,插上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相关推荐
- java 调用tomcat api,Tomcat采用双向认证https协议通过JavaAPI调用(一)配置SSL
双向认证(个人理解): 客户端认证: 客户端通过浏览器访问某一网站时,如果该网站为HTTPS网站,浏览器会自动检测系统中是否存在该网站的信任证书,如果没有信任证书,浏览器一般会拒绝访问,IE会有一个继 ...
- nginx配置ssl加密(单双向认证、部分https)
nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始采用的是全站加密,所有访问http:80的请求强制转换( ...
- Android应用实现Https双向认证
为什么需要双向认证 Https保证的是信道的安全,即客户端和服务端通信报文的安全.但是无法保证中间人攻击,所以双向认证解决的问题就是防止中间人攻击. 中间人攻击(Man-in-the-MiddleAt ...
- ssl介绍以及双向认证和单向认证原理 (转)
证书介绍 SSL安全证书可以自己生成,也可以通过第三方的CA(Certification Authority)认证中心付费申请颁发. SSL安全证书包括: 1. CA证书,也叫根证书或中间 ...
- ssl介绍以及双向认证和单向认证原理
证书介绍 SSL安全证书可以自己生成,也可以通过第三方的CA(Certification Authority)认证中心付费申请颁发. SSL安全证书包括: 1. CA证书,也叫根证书或中间 ...
- android webview单向认证,android 让webview支持自签名证书https 双向认证(SSL)
最近完成一个项目,安全级别比较高.所以涉及到https双向认证,在网上找了很多资料都没有完美的解决方案.最后参考了org.sandrob.sslexample的实现方式,结合实际情况才完成该技术难题, ...
- Apache httpd设置HTTPS双向认证
一.环境 httpd: 2.4.4 openssl:1.0.1 os:ubuntu 12.04 LTS 二.场景 我准备在httpd上配置一个HTTPS双向认证,既向客户端表明自己的身份,也只允许 ...
- Https单向认证和双向认证介绍
一.Http HyperText Transfer Protocol,超文本传输协议,是互联网上使用最广泛的一种协议,所有WWW文件必须遵循的标准.HTTP协议传输的数据都是未加密的,也就是明文的,因 ...
- Windows 环境 Tomcat 的 HTTPS 单向认证和双向认证的配置
2019独角兽企业重金招聘Python工程师标准>>> 单向认证,说的是浏览器验证服务器的真实性,双向认证是服务器也验证浏览器用户的真实性. 1.使用keytool生成keystor ...
- TurboMail邮件系统支持HTTPS双向认证
2019独角兽企业重金招聘Python工程师标准>>> HTTP单向认证已经被普遍应用,而对企业邮箱安全保密要求更加严格的企事业单位,例如国家保密局等单位,为了达到闭环的安全加密要求 ...
最新文章
- disk boot failure,insert system disk and press enter
- 了解Java中的内存泄漏
- 深度学习核心技术精讲100篇(二十三)-深度学习系列计算广告与推荐系统有哪些区别?使用的主流模型有哪些?
- 国行iphone第一次安装APP网络状况
- 互联网日报 | 小米跻身千亿美金俱乐部;企业微信活跃用户数达1.3亿;蔚来即将发布旗下首款轿车...
- pandas插入新列
- JAVA学习-JAVA实现对象描述(java面向对象特性)
- Redis报错#MISCONF Redis is configured to save RDB snapshots, but is currently not
- [2019杭电多校第二场][hdu6602]Longest Subarray(线段树)
- c语言从入门到放弃(初识)
- stm32f207/stm32f407擦除内部flash讲解
- Gif截图工具——GifCam
- 410c 上安装中文版本的答题器游戏demo
- 智能快递柜在小区的应用
- 低多边形(Low Poly)风格会不会成为移动游戏时代的8bit像素
- python-递归——猴子吃桃
- SEO人员,为什么要做流量过滤,如何操作?
- Excel查找匹配VLOOKUP用法
- Windows 和Linux利用tftp协议传送文件
- Linux 文件系统学习之 EROFS 源码阅读笔记