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双向验证的配置的更多相关文章

  1. ssl https双向验证的配置与证书库的生成

    1.SSL认证 不须要特别配置,相关证书库生成看https认证中的相关部分 2.HTTPS认证 一.基本概念 1.单向认证,就是传输的数据加密过了,可是不会校验client的来源  2.双向认证,假设 ...

  2. nginx配置https双向验证(ca机构证书+自签证书)

    nginx配置https双向验证 服务端验证(ca机构证书) 客户端验证(服务器自签证书) 本文用的阿里云签发的免费证书实验,下载nginx安装ssl,文件夹有两个文件 这两个文件用于做服务器http ...

  3. linux:Nginx+https双向验证(数字安全证书)

    本文由邓亚运提供 Nginx+https双向验证 说明: 要想实现nginx的https,nginx必须启用http_ssl模块:在编译时加上--with-http_ssl_module参数就ok.另 ...

  4. Java Https双向验证

    CA: Certificate Authority,证书颁发机构 CA证书:证书颁发机构颁发的数字证书 参考资料 CA证书和TLS介绍 HTTPS原理和CA证书申请(满满的干货) 单向 / 双向认证 ...

  5. Https双向验证与Springboot整合测试-人来人往我只认你

    1 简介 不知不觉Https相关的文章已经写了6篇了,本文将是这个专题的最后一篇,起码近期是最后一篇.前面6篇讲的全都是单向的Https验证,本文将重点介绍一下双向验证.有兴趣的同学可以了解一下之前的 ...

  6. iOS + Nodejs SSL/Https双向认证

    移动互联网的大力发展,安全越来越重要. 什么是双向认证呢?双向认证就是client要验证server的合法性,同一时候server也要验证client的合法性. 这样两方都相互验证,提高安全性. 关于 ...

  7. .net core https 双向验证

    文章来自:https://www.cnblogs.com/axzxs2001/p/10070562.html 关于https双向认证的知识可先行google,这时矸接代码. 为了双向认证,我们首先得准 ...

  8. CenOS7秘钥双向验证的配置

    配置密钥对的双向配置 HOST1配置: root下编辑/etc/ssh/sshd_config  RSAAuthentication  yes              //启用RSA算法 Pubke ...

  9. https 双向验证

    服务器配置 服务器秘钥   服务器公钥证书  ,客户端公钥证书 客户端配置  客户端秘钥+密码 服务器公钥证书 目前android验证ok,pc浏览器添加客户端秘钥证书  ,访问还是失败,待继续查找资 ...

随机推荐

  1. html --- canvas --- javascript --- 在线画板

    canvas功能十分强大,制作一个简易画板易如反掌,主要涉及canvas的画线能力,javascript鼠标点击事件 如有问题请参考:http://www.html5party.com/857.htm ...

  2. python中函数的总结之三

    1. 可变长参数 在函数中可变长参数分为两种:一种是非关键字参数,表示为元组:一种是关键字参数,表示为字典. 具体看下面的例子代码,相当于单元测试: #!/usr/bin/env python #'t ...

  3. python实现不可修改的常量

    因为种种原因,Python并未提供如C/C++/Java一样的const修饰符,换言之,python中没有常量,至少截止2015年年末,还没有这个打算.Python程序一般通过约定俗成的变量名全大写的 ...

  4. .NET在IE9中页面间URL传递中文变成乱码的解决办法

     在.Net的项目中,鼠标点击查询按钮,转到查询页面,但URL中包含中文时,传到服务器端后,中文变成了乱码(只有IE9出现该问题).       尝试使用Server.UrlEncode()进行编码, ...

  5. 【原创译文】基于Docker和Rancher的超融合容器云架构

    基于Docker和Rancher的超融合容器云架构 ---来自Rancher和Redapt 超融合架构在现代数据中心是一项巨大的变革.Nutanix公司发明了超融合架构理论,自从我听说他们的“iPho ...

  6. ubuntu 14.04 root破解

    Advanced Programmable interrupt controller 高级可编程中断控制;Advanced create table `users` (`id` int(11) not ...

  7. CentOS下MySQL 5.7.9编译安装

    MySQL 5.7 GA版本的发布,也就是说从现在开始5.7已经可以在生产环境中使用,有任何问题官方都将立刻修复. MySQL 5.7主要特性: 更好的性能:对于多核CPU.固态硬盘.锁有着更好的优化 ...

  8. 递归遍历树结构顺序显示并且添加到list集合

    /// <summary> /// 给流程排序 by 于連偉 2015/06/15 /// </summary> /// <param name="lstNex ...

  9. poj 1247 The Perfect Stall 裸的二分匹配,但可以用最大流来水一下

    The Perfect Stall Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 16396   Accepted: 750 ...

  10. MFC中消息响应机制

    由于视类窗口始终覆盖在框架类窗口之上,因此所有操作,包括鼠标单击.鼠标移动等操作都只能由视类窗口捕获.一个MFC消息响应函数在程序中有三处相关信息:函数原型.函数实现和以及用来关联消息和消息响应函数的 ...