1.SSL认证

不须要特别配置,相关证书库生成看https认证中的相关部分

2.HTTPS认证

一、基本概念

1.单向认证,就是传输的数据加密过了,可是不会校验client的来源 

2.双向认证,假设client浏览器没有导入client证书,是訪问不了web系统的,找不到地址 

假设仅仅是加密,我感觉单向即可了。 

假设想要用系统的人没有证书就訪问不了系统的话,就採用双向

二、server配置:

打开Tomcat 根文件夹下的 /conf/server.xml 改动server.xml

client证书注冊名称必须与域名一致,否则无法验证。

比如訪问https://127.0.0.1:8443/Test必须使用名称为127.0.0.1的证书,

訪问https://hepengfei:8443/Test必须使用名称为hepengfei的证书,

本机中域名解析改动文件是C:/WINDOWS/system32/drivers/etc/hosts

port号改为8443,为自己定义port    訪问https://127.0.0.1:8443/Test

port号改为443,则为默认port    訪问https://127.0.0.1/Test

clientAuth="true"为双向认证      clientAuth="false"为单向认证

使用密钥库文件和password(自己使用的证书)

信任密钥库文件和password(含有client证书或其根证书)

<Connector port="8443" protocol="HTTP/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/server/trust" truststorePass="080302"

/>

三、证书的生成例如以下:

运行命令前先保证目录存在。比如:在c盘建立keystore目录

第一步:为server生成证书

确定域名:本机中域名解析改动文件是C:/WINDOWS/system32/drivers/etc/hosts

使用keytool 为 Tomcat 生成证书和密钥库,假定目标机器的域名是“ hepengfei ”, keystore 文件存放在“ C:/keystoreserver ”,口令为“ 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

keytool -genkey -v -keystore C:keystoreserver -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安装在client解决服务器信任问题:

keytool -export -keystore C:/keystore/server -alias serverkey -file c:/keystore/server.cer -storepass 080302

keytool -export -keystore C:keystoreserver -alias serverkey -file c:keystoreserver.cer -storepass 080302 

第二步:为client生成证书

(注意:个人证书的生成和使用比較特别,是分开的。先生成p12文件,然后导出cer文件,再将cer文件导入默认类型的keystore(JKS)文件)

这一步是为浏览器生成证书,以便让server来验证它。为了能将证书顺利导入至IE 和 Firefox ,证书格式应该是 PKCS12 ,因此,使用例如以下命令生成: 

keytool -genkey -v -keystore C:/keystor/euser.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

keytool -genkey -v -keystore C:keystoreuser.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 

server要信任client证书,就必须把client证书加入为server的信任认证。因为不能直接将 PKCS12 格式的证书库导入,我们必须先把client证书导出为一个单独的 CER 文件,使用例如以下命令:

keytool -export -alias MyPC -keystore C:/keystore/user.p12 -storetype PKCS12 -storepass 080302 -rfc -file C:/keystore/user.cer

keytool -export -alias MyPC -keystore C:keystoreuser.p12 -storetype PKCS12 -storepass 080302 -rfc -file C:keystoreuser.cer 

接着,将C:user.cer导入到server的证书库,加入为一个信任证书:

keytool -import -v -file C:/keystore/user.cer -keystore c:/keystore/servertrust -alias user -storepass 080302

keytool -import -v -file C:keystoreuser.cer -keystore c:keystoreservertrust -alias user -storepass 080302

输入“是”确认完毕。

通过list 命令查看: 

keytool -list -keystore c:/keystore/servertrust -storepass 080302

keytool -list -keystore c:keystoreservertrust -storepass 080302 

也能够考虑将server证书和server信任证书放到一个密钥库中



第四步:配置Tomcat server 



打开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:/JavaTomcat/conf/keystore/servertrust" truststorePass="080302"

/>

详解见本节最前面介绍。

安装个人证书user.p12(password: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.单向认证,就是传输的数据加密过了,但是不会校验客户端的来源  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. https 双向验证

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

  8. .net core https 双向验证

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

  9. openfire的SSL双向认证增加android客户端证书库步骤

    过程 需要新制作PKCS12证书库.CER证书.转换为androidBKS证书,最后把客户端的CER证书导入进im服务器的私钥库client.truststore,然后替换原证书.   新证书生成步骤 ...

随机推荐

  1. ubuntu无法解析主机错误与解决的方法

    今天在用命令行进行操作的时候,出现了无法解析主机的错误.google了一下,原来是hosts文件的问题.更改过来即可了 进入终端,输入 sudo gedit /etc/hosts.输入password ...

  2. fileziller 恢复 站点管理器 内的ftp帐号方法

    由于系统坏了重装了系统,以前的fileziller中配置的服务器链接信息列表很多,新装fileziller后即使复制以前的安装目录过来,站点管理器内还是空荡荡的. 这些服务器链接的配置信息非常重要,如 ...

  3. 学习算法-基数排序(radix sort)卡片分类(card sort) C++数组实现

    基数排序称为卡片分类,这是一个比较早的时间越多,排名方法. 现代计算机出现之前,它已被用于排序老式打孔卡. 说下基数排序的思想.前面我有写一个桶式排序,基数排序的思想是桶式排序的推广. 桶式排序:ht ...

  4. QT工程pro设置实践(with QtCreator)----非弄的像VS一样才顺手?

    源地址:http://my.oschina.net/jinzei/blog/100989?fromerr=DhQJzZQe 相信大家很多和我一样,用多了微软给的便利,用人家的就十分不习惯.于是就琢磨原 ...

  5. Fedora 17 下安装codeblocks

    Fedora 17 下安装codeblocks:        1.直接从yum源安装:        sudo yum install codeblocks        2.源码安装        ...

  6. java对象引用传递和值传递的一些总结

    1.对象作为函数的参数传递过去的时候,是以原对象的引用的方式传递的,更改参数对象的值,会影响原来的对象. 2.对象作为函数的返回值的时候,传递过来的也是一个引用传递,更改传递过来的对象的时候,会影响原 ...

  7. MSSQL - SQL Server2008附加数据库失败 错误号:5120

    附加数据库时,显示错误,错误信息为 一种解决方法为,设置mdf文件所在文件夹的权限(有些资料说只设置mdf文件的权限就好,但我试了不管用),在文件夹上右击——属性——安全,如图所示: 选择组或用户名中 ...

  8. 创建采购订单批到程序用的BAPI

    CALL FUNCTION 'BAPI_PO_CREATE1' EXPORTING poheader = poheader poheaderx = poheaderx * POADDRVENDOR = ...

  9. boa-0.94.13:Hello CGI

    CGI是什么 CGI全称是CommonGateway Interface,简称CGI,中文名叫做通用网关接口. CGI程序就是符合CGI接口规范的程序,相对于WebServer来说也叫外部程序. CG ...

  10. 混淆器:java程序保护如何知识产权,特别提供一个java 开发的java 源代码级的混淆器

    java程序保护如何知识产权,特别提供一个java 开发的java 源代码级的混淆器 下载地址:http://yunpan.cn/QXhEcGNYLgwTD 运行方式:java -jar Encryp ...