一、证书生成

1、生成服务器证书

(1)打开打开命令控制台,进入jdk的bin目录

cd D:\Program Files\jdk1.6.0_45\bin

(2)keytool为Tomcat生成证书(“-validity 36500”证书有效期,36500表示100年,默认值是90天)

           keytool -genkey -v -alias tomcat -keyalg RSA -keystore E:\tomcat.keystore -validity 36500

2、生成客户端证书

         keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore E:\mykey.p12

3让服务器信任客户端证书

(1)由于不能直接将PKCS12格式的证书库导入,必须先把客户端证书导出为一个单独的CER文件,使用如下命令:

         keytool -export -alias mykey -keystore E:\mykey.p12 -storetype PKCS12 -storepass 123456 -rfc -file E:\mykey.cer

(2)将该文件导入到服务器的证书库,添加为一个信任证书使用命令如下:

keytool -import -v -file E:\mykey.cer –keystore E:\tomcat.keystore

 

(3)通过 list 命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书:

keytool -list -keystore E:\tomcat.keystore

4、让客户端信任服务器证书

把服务器证书导出为一个单独的CER文件提供给客户端,使用如下命令:

keytool -keystore E:\tomcat.keystore -export -alias tomcat -file E:\tomcat.cer

 

5经过上面操作,生成如下证书:

其中 tomcat.cer 提供给客户端,tomcat.keystore供服务器使用

二、证书使用

1服务器tomcat的配置

(1)打开Tomcat根目录下的/conf/server.xml,找到Connector port="8443"配置段,修改为如下:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"               maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="E:/tomcat.keystore" keystorePass="123456" truststoreFile="E:/tomcat.keystore" truststorePass="123456" />

注释掉

<!--<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />-->

(2)测试服务端,IE浏览器输入访问地址

但由于是自签名的证书,所以浏览器会警告我们不安全,选择继续:

可以看到能成功访问了(地址栏“证书错误”,此时数据已经是使用HTTPS传输了)

2导入服务器公钥证书(tomcat.cer)

由于是自签名的证书,为避免每次都提示不安全。这里双击tomcat.cer安装服务器证书。

注意:将证书填入到“受信任的根证书颁发机构”

再次重新访问服务器,会发现没有不安全的提示了,同时浏览器地址栏上也有个“锁”图标。

至此,就完成了配置。

:由于jdk自带的keytool生成的签名属于弱签名算法(SHA-1),但是,SHA-1已经过时因而不再推荐使用。新证书使用了更强的签名算法(比如SHA-256)。SHA-1的证书将从2017开始不再被主流浏览器厂商视为安全的。

Tomcat服务器配置https认证(使用keytool生成证书)的更多相关文章

  1. java ssl https 连接详解 生成证书 tomcat keystone

    java ssl https 连接详解 生成证书 我们先来了解一下什么理HTTPS 1. HTTPS概念 1)简介 HTTPS(全称:Hypertext Transfer Protocol over ...

  2. java ssl https 连接详解 生成证书

    我们先来了解一下什么理HTTPS 1. HTTPS概念 1)简介 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全 ...

  3. Tomcat服务器配置https双向认证(使用keytool生成证书)

    一,HTTPS原理   1,HTTP.HTTPS.SSL.TLS介绍与相互关系 (1)HTTP:平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的(明文),因此使用HTTP协议传输隐私 ...

  4. tomcat7+jdk的keytool生成证书 配置https

    目前只会使用jdk的keytool来生成证书.本文仅介绍这种方法. 1Windows下: 1.1 生成keystore文件及导出证书 打开控制台: 运行: %JAVA_HOME%\bin\keytoo ...

  5. 原 用Tomcat服务器配置https双向认证过程实战

    什么是https? 百度百科足够解释它:http://baike.baidu.com/view/14121.htm 工具:keytool (Windows下路径:%JAVA_HOME%/bin/key ...

  6. keytool生成证书与Tomcat SSL配置

    转自:http://tomhat.iteye.com/blog/2087673 一.Keytool介绍 Keytool是一个Java数据证书的管理工具.Keytool将密钥(key)和证书(certi ...

  7. Tomcat服务器配置https协议(Tomcat HTTPS/SSL 配置)

    通常商用服务器使用https协议需要申请SSL证书,证书都是收费的,价格有贵的有便宜的.它们的区别是发行证书的机构不同,贵的证书机构更权威,证书被浏览器否决的几率更小. 非商业版本可以通过keytoo ...

  8. Keytool生成证书

    一.生成证书keytool -genkey -alias 别名 -keyalg RSA -keysize 1024(密钥位数) -keypass 密码 -validity 365(默认90天) -ke ...

  9. 使用jdk中keytool生成证书

    -genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥.私钥和证书 -alias 产生别名 -keystor ...

随机推荐

  1. CentOS下 Yum 损坏与重建

    yum报错error: rpmdb open failed 这种情况一般是由于rpm数据库被损坏导致的,可按照下述方法重建yum数据库: cd /var/lib/rpm/ rm -rf __db.* ...

  2. NFS共享服务

    一.网络文件系统共享服务 NFS( Network File System,网络文件系统 )是一种基于TCP/IP传输的网络文件系统协议,最初由SUN公司开发,通过使用NFS协议,客户机可以像访问本地 ...

  3. mysql5.7解压版版安装步骤详情

    mysql有安装版和解压版之分: 安装版:以msi结尾的,这种版本优点是安装便捷,全是傻瓜式的下一步:缺点是会不自觉的安装一些我们根本不需要的组件. 解压版:以zip或者其他压缩格式结尾的,这种版本虽 ...

  4. AlvinZH掉坑系列讲解(背包DP大作战H~M)

    本文由AlvinZH所写,欢迎学习引用,如有错误或更优化方法,欢迎讨论,联系方式QQ:1329284394. 前言 动态规划(Dynamic Programming),是一个神奇的东西.DP只能意会, ...

  5. KVO 使用及原理

    KVO的基本原理大概是这样的   当一个对象被观察时, 系统会新建一个子类NSNotifying_A ,在子类中重写了对象被观察属性的 set方法,  并且改变了该对象的 isa 指针的指向(指向了新 ...

  6. jQuery怎么获取到富文本ueditor编辑器里面的文字和图片内容

    jQuery怎么获取到富文本ueditor编辑器里面的文字和图片内容 .创建编辑器 UE.getEditor('editor', { initialFrameWidth:"100%" ...

  7. vue混入函数问题

    vue开发时,遇到个问题, import mxTable from "#mixin/table"; 导入了一个混入mxTable,但是该混入函数中import了其他的js代码,此时 ...

  8. SQL Server 保留关键字

    Microsoft SQL Server 2005 使用保留关键字来定义.操作或访问数据库.保留关键字是 SQL Server 使用的 Transact-SQL 语言语法的一部分,用于分析和理解 Tr ...

  9. 高效的JS数组操作

    1.向数组的末尾添加元素 var arr=[1,2,3]; arr[arr.length]=1; 2.向数组的头部添加元素 var arr=[1,2,3]; [0].concat(arr); 3.向数 ...

  10. android viewpager 拿到当前显示的 fragment 的实例

    一个 ViewPager 通过 FragmentPagerAdapter 绑定了 3 个 fragment 可以通过 Fragment fragment = getSupportFragmentMan ...