ssl/https双向验证的配置
1.SSL认证
不需要特别配置,相关证书库生成看https认证中的相关部分
2.HTTPS认证
一、基本概念
1.单向认证,就是传输的数据加密过了,但是不会校验客户端的来源
2.双向认证,如果客户端浏览器没有导入客户端证书,是访问不了web系统的,找不到地址
如果只是加密,我感觉单向就行了。
如果想要用系统的人没有证书就访问不了系统的话,就采用双向
二、服务器配置:
打开Tomcat 根目录下的 /conf/server.xml 修改server.xml
客户端证书注册名称必须与域名一致,否则无法验证。
例如访问https://127.0.0.1:8443/Test必须使用名称为127.0.0.1的证书,
访问https://hepengfei:8443/Test必须使用名称为hepengfei的证书,
本机中域名解析修改文件是C:WINDOWSsystem32driversetchosts
端口号改为8443,为自定义端口 访问https://127.0.0.1:8443/Test
端口号改为443,则为默认端口 访问https://127.0.0.1/Test
clientAuth="true"为双向认证 clientAuth="false"为单向认证
使用密钥库文件和密码(自己使用的证书)
信任密钥库文件和密码(含有客户端证书或其根证书)
<="" 1.1? sslenabled="true">maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="C:JavaTomcatconfkeystoreserver" keystorePass="080302"
truststoreFile="C:JavaTomcatconfkeystoreservertrust" truststorePass="080302"
/>
三、证书的生成如下:
执行命令前先保证文件夹存在。例如:在c盘建立keystore文件夹
第一步:为服务器生成证书
确定域名:本机中域名解析修改文件是C:\WINDOW\Ssystem32\drivers\etc\hosts
使用keytool 为 Tomcat 生成证书和密钥库,假定目标机器的域名是“ hepengfei ”, keystore 文件存放在“ C:keystore\server ”,口令为“ 080302 ”,命令如下:
keytool -genkey -v -keystore C:keystore\server -alias serverkey -keyalg RSA -validity 3650 -dname "CN=hepengfei,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass 080302 -keypass 080302
生成server.cer安装在客户端解决服务器信任问题:
keytool -export -keystore C:\keystore\server -alias serverkey -file c:keystore\server.cer -storepass 080302
第二步:为客户端生成证书
(注意:个人证书的生成和使用比较特别,是分开的。先生成p12文件,然后导出cer文件,再将cer文件导入默认类型的keystore(JKS)文件)
这一步是为浏览器生成证书,以便让服务器来验证它。为了能将证书顺利导入至IE 和 Firefox ,证书格式应该是 PKCS12 ,因此,使用如下命令生成:
keytool -genkey -v -keystore C:keystore\user.p12 -alias MyPC -keyalg RSA -storetype PKCS12 -validity 3650 -dname "CN=MyPC,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass 080302 -keypass 080302
服务器要信任客户端证书,就必须把客户端证书添加为服务器的信任认证。由于不能直接将 PKCS12 格式的证书库导入,我们必须先把客户端证书导出为一个单独的 CER 文件,使用如下命令:
keytool -export -alias MyPC -keystore C:keystoreuser.p12 -storetype PKCS12 -storepass 080302 -rfc -file C:keystoreuser.cer
接着,将C:user.cer导入到服务器的证书库,添加为一个信任证书:
keytool -import -v -file C:\keystore\user.cer -keystore c:\keystore\servertrust -alias user -storepass 080302
输入“是”确认完成。
通过list 命令查看:
keytool -list -keystore c:\keystore\servertrust -storepass 080302
也可以考虑将服务器证书和服务器信任证书放到一个密钥库中
第四步:配置Tomcat 服务器
打开Tomcat 根目录下的 /conf/server.xml ,修改如下:
<="" 1.1? sslenabled="true">maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="C:\Java\Tomcat\conf\keystore\server" keystorePass="080302"
truststoreFile="C:\Java\Tomcat\conf\keystore\servertrust" truststorePass="080302"
/>
详细解释见本节最前面介绍。
安装个人证书user.p12(密码:080302)和服务器证书server.cer
到这里启动tomcat,输入 https://hepengfei:8443/Test,就OK了。
如果数字证书注册名称不是127.0.0.1,而是对应的一个hepengfei,
使用ip访问(https://127.0.0.1:8443/Test)可以进入选择数字证书界面(仿真格式):
选择数字证书
名称 颁发商
MyPC MyPC
详细信息 查看证书
确定 取消
注意点:
keytool -list -v -keystore user
使用的库要privateKeyEntry
信任的库要trustedCertEntry
ConvertKeystoreType.java用于转换密钥库类型(PKCS12与JKS格式证书库转换工具)
ssl使用其中四个密钥库
https使用server、servertrust、user.p12(安装到本地计算机)、server.cer四个
ssl/https双向验证的配置的更多相关文章
- ssl https双向验证的配置与证书库的生成
1.SSL认证 不须要特别配置,相关证书库生成看https认证中的相关部分 2.HTTPS认证 一.基本概念 1.单向认证,就是传输的数据加密过了,可是不会校验client的来源 2.双向认证,假设 ...
- nginx配置https双向验证(ca机构证书+自签证书)
nginx配置https双向验证 服务端验证(ca机构证书) 客户端验证(服务器自签证书) 本文用的阿里云签发的免费证书实验,下载nginx安装ssl,文件夹有两个文件 这两个文件用于做服务器http ...
- linux:Nginx+https双向验证(数字安全证书)
本文由邓亚运提供 Nginx+https双向验证 说明: 要想实现nginx的https,nginx必须启用http_ssl模块:在编译时加上--with-http_ssl_module参数就ok.另 ...
- Java Https双向验证
CA: Certificate Authority,证书颁发机构 CA证书:证书颁发机构颁发的数字证书 参考资料 CA证书和TLS介绍 HTTPS原理和CA证书申请(满满的干货) 单向 / 双向认证 ...
- Https双向验证与Springboot整合测试-人来人往我只认你
1 简介 不知不觉Https相关的文章已经写了6篇了,本文将是这个专题的最后一篇,起码近期是最后一篇.前面6篇讲的全都是单向的Https验证,本文将重点介绍一下双向验证.有兴趣的同学可以了解一下之前的 ...
- iOS + Nodejs SSL/Https双向认证
移动互联网的大力发展,安全越来越重要. 什么是双向认证呢?双向认证就是client要验证server的合法性,同一时候server也要验证client的合法性. 这样两方都相互验证,提高安全性. 关于 ...
- .net core https 双向验证
文章来自:https://www.cnblogs.com/axzxs2001/p/10070562.html 关于https双向认证的知识可先行google,这时矸接代码. 为了双向认证,我们首先得准 ...
- CenOS7秘钥双向验证的配置
配置密钥对的双向配置 HOST1配置: root下编辑/etc/ssh/sshd_config RSAAuthentication yes //启用RSA算法 Pubke ...
- https 双向验证
服务器配置 服务器秘钥 服务器公钥证书 ,客户端公钥证书 客户端配置 客户端秘钥+密码 服务器公钥证书 目前android验证ok,pc浏览器添加客户端秘钥证书 ,访问还是失败,待继续查找资 ...
随机推荐
- [Asp.net MVC]Asp.net MVC5系列——Razor语法
Razor视图引擎是Asp.net MVC3中新扩展的内容,并且也是它的默认视图引擎.还有另外一种Web Forms视图引擎.通过前面的文章可知在Asp.net mvc5中创建视图,默认使用的是Raz ...
- 搞JAVA在北京月薪15K的朋友来到厦门却很难找到工作
朋友是搞JAVA开发的,从北京来.来前朋友们都感觉他在厦门应该很快就能找到工作,因为厦门的IT人员很缺. 没想到来厦门大概半个多月了,到现在都还没着落.面试单位每周基本只有两家,而且面试的感觉都说不错 ...
- 黑马程序员——Objective-c特性
1. 继承 Objective-c不支持多继承. Super 关键字:调用该类的父类: 超类:父类的另一种说法. 2.自定义NSLog()输出: 在类中添加description方法就可以自定义NS ...
- Python面向对象3
一.内部类 内部类就是在类的内部定义的类,主要目的是为了更好的抽象现实世界. 二.魔术方法(构造函数和析构函数) #!usr/bin/python #coding:utf8 class Milo(): ...
- servicestack操作redis
tatic void Main(string[] args) { );//redis服务IP和端口 #region =insert= var storeMembers = new List<st ...
- BFS寻路算法的实现
关于BFS的相关知识由于水平有限就不多说了,感兴趣的可以自己去wiki或者其他地方查阅资料. 这里大概说一下BFS寻路的思路,或者个人对BFS的理解: 大家知道Astar的一个显著特点是带有启发函数, ...
- 【原创译文】基于Docker和Rancher的超融合容器云架构
基于Docker和Rancher的超融合容器云架构 ---来自Rancher和Redapt 超融合架构在现代数据中心是一项巨大的变革.Nutanix公司发明了超融合架构理论,自从我听说他们的“iPho ...
- 实体框架 (EF) 入门 => 二、在全新的数据库中使用 Code First
学习资料:http://msdn.microsoft.com/zh-cn/data/jj193542 视频建立的控制台应用程序,我在这里使用MVC. 一.非常有磁性的,非常优雅 很喜欢看这个人的视频, ...
- 第三百三十九天 how can I 坚持
脑子里老是无缘无故浮现出之前学的古文,之前只是傻学了,什么都没搞懂啊. 吾师道也,夫庸知其年之先后生于吾乎?是故无贵无贱,无长无少,道之所存,师之所存也. 是故弟子不必不如师,师不必贤于弟子,闻道有先 ...
- (转载)ETL利器Kettle实战应用解析系列一【Kettle使用介绍】
http://www.cnblogs.com/limengqiang/archive/2013/01/16/kettleapply1.html ETL利器Kettle实战应用解析系列一[Kettle使 ...