`

keytool+tomcat配置HTTPS双向证书认证

阅读更多
系统需求:

1、  Windows系统或Linux系统

2、  安装并配置JDK 1.6.0_13

3、  安装并配置Tomcat 6.0



第一步:为服务器生成证书

1、  Windows系统

“运行”控制台,进入%JAVA_HOME%/bin目录
使用keytool为Tomcat生成证书,假定目标机器的域名是“localhost”,keystore文件存放在“D:\home\tomcat.keystore”,口令为“password”,使用如下命令生成:


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



(参数简要说明:“D:\home\tomcat.keystore”含义是将证书文件的保存路径,证书文件名称是tomcat.keystore ;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天)

在命令行填写必要参数:
A、输入keystore密码:此处需要输入大于6个字符的字符串

B、“您的名字与姓氏是什么?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com 或者 10.1.25.251](就是你将来要在浏览器中输入的访问地址),否则浏览器会弹出警告窗口,提示用户证书与所在域不匹配。在本地做开发测试时,应填入“localhost”

C、“你的组织单位名称是什么?”、“您的组织名称是什么?”、“您所在城市或区域名称是什么?”、“您所在的州或者省份名称是什么?”、“该单位的两字母国家代码是什么?”可以按照需要填写也可以不填写直接回车,在系统询问“正确吗?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息

D、输入<tomcat>的主密码,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以

完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件
2、  Linux系统

“运行”控制台,进入%JAVA_HOME%/bin目录
使用如下命令生成:


./keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/ac/web/tomcat.keystore -validity 36500

(参数简要说明:“/etc/tomcat.keystore”含义是将证书文件保存在路径/usr/local/ac/web/下,证书文件名称是tomcat.keystore ;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天)

在命令行填写必要参数:
A、Enter keystore password:此处需要输入大于6个字符的字符串

B、“What is your first and last name?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你将来要在浏览器中输入的访问地址

C、“What is the name of your organizational unit?”、“What is the name of your organization?”、“What is the name of your City or Locality?”、“What is the name of your State or Province?”、“What is the two-letter country code for this unit?”可以按照需要填写也可以不填写直接回车,在系统询问“correct?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息

D、Enter key password for <tomcat>,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以

完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件


第二步:为客户端生成证书



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


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



对应的证书库存放在“D:\home\mykey.p12”,客户端的CN可以是任意值。双击mykey.p12文件,即可将证书导入至浏览器(客户端)。



第三步:让服务器信任客户端证书



由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。由于不能直接将PKCS12格式的证书库导入,必须先把客户端证书导出为一个单独的CER文件,使用如下命令:


keytool -export -alias mykey -keystore D:\home\mykey.p12 -storetype PKCS12 -storepass password -rfc -file D:\home\mykey.cer



通过以上命令,客户端证书就被我们导出到“D:\home\mykey.cer”文件了。下一步,是将该文件导入到服务器的证书库,添加为一个信任证书:


keytool -import -v -file D:\home\mykey.cer -keystore D:\home\tomcat.keystore



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


keytool -list -keystore D:\home\tomcat.keystore



第四步:让客户端信任服务器证书



由于是双向SSL认证,客户端也要验证服务器证书,因此,必须把服务器证书添加到浏览的“受信任的根证书颁发机构”。由于不能直接将keystore格式的证书库导入,必须先把服务器证书导出为一个单独的CER文件,使用如下命令:


keytool -keystore D:\home\tomcat.keystore -export -alias tomcat -file D:\home\tomcat.cer





通过以上命令,服务器证书就被我们导出到“D:\home\tomcat.cer”文件了。双击tomcat.cer文件,按照提示安装证书,将证书填入到“受信任的根证书颁发机构”。
第四步:配置Tomcat服务器



打开Tomcat根目录下的/conf/server.xml,找到如下配置段,修改如下:



<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" maxThreads="150" scheme="https"
secure="true" clientAuth="true" sslProtocol="TLS"
keystoreFile="D:\\home\\test.keystore" keystorePass="123456"
truststoreFile="D:\\home\\test.keystore" truststorePass="123456" />

属性说明:

clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证
keystoreFile:服务器证书文件路径
keystorePass:服务器证书密码
truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书
truststorePass:根证书密码
第五步:测试



在浏览器中输入:https://localhost:8443/,会弹出选择客户端证书界面,点击“确定”,会进入tomcat主页,地址栏后会有“锁”图标,表示本次会话已经通过HTTPS双向验证,接下来的会话过程中所传输的信息都已经过SSL信息加密。
分享到:
评论

相关推荐

    keytool+tomcat配置HTTPS双向证书认证结合web实例

    ### keytool+Tomcat配置HTTPS双向证书认证结合Web实例 #### 概述 本文将详细介绍如何使用`keytool`工具配合Tomcat服务器实现HTTPS双向证书认证,并通过具体示例加以说明。该方案主要应用于需要对访问来源进行严格...

    keytool+tomcat 单向/双向认证的配置

    在Tomcat中配置双向认证,除了上述步骤外,还需要在服务器上设置truststore,存储可信的客户端证书。客户端也需要设置keystore,包含其私钥和证书。通信时,双方都需要提供有效的证书。 **keytool的使用**: 1. **...

    利用tomcat服务器配置https双向认证

    Tomcat 服务器配置 HTTPS 双向认证 Tomcat 服务器配置 HTTPS 双向认证是指在 Tomcat 服务器上配置 SSL/TLS 加密协议,以便在客户端和服务器之间建立安全的连接。本文将指导您如何配置 Tomcat 服务器上的 HTTPS 双向...

    tomcat 实现https 双向认证通信

    - 设置`clientAuth="true"`以启用客户端证书认证。 - 设置`wantClientAuth="true"`以请求客户端证书,但不会拒绝没有提供证书的客户端。 - 设置`needClientAuth="true"`以强制要求客户端必须提供证书。 #### ...

    Tomcat服务器配置https双向认证

    ### Tomcat服务器配置HTTPS双向认证详解 #### 一、HTTPS原理及TLS/SSL特性 **1. HTTP、HTTPS、SSL、TLS的关系** - **HTTP**(HyperText Transfer Protocol): 是一种应用层协议,用于从Web服务器传输超文本到本地...

    用keytool生成证书,双向SSL认证配置的方法

    用keytool生成证书,双向SSL认证配置的方法,以Tomcat举例。包含步骤:一、为服务器生成证书;二、为客户端生成证书;三、让服务器信任客户端证书;四、让客户端信任服务器证书。

    Tomcat配置SSL双向认证

    ### Tomcat配置SSL双向认证详解 #### 一、SSL双向认证概述 SSL(Secure Sockets Layer,安全套接层)是一种用于确保Web通信安全的技术,它通过加密数据传输来保护信息不被未授权访问。SSL协议的核心是实现客户端与...

    https双向认证证书配置详解

    ### HTTPS双向认证证书配置详解 #### 一、前置知识与概念理解 在开始具体操作之前,我们先来明确几个核心概念及其相互之间的关系。 - **DER/CER**: 这些文件通常是二进制格式,仅包含证书而不包含私钥。 - **CRT*...

    Windows +tomcat +SSL

    其中`clientAuth="true"`表示启用双向认证,这需要客户端提供证书以验证其身份;`keystoreFile`和`truststoreFile`分别指定了服务器端证书和信任库的路径。 ##### 7. 导入证书到浏览器 最后一步是将`client.p12`...

    tomcat实现SSL双向认证

    本文将详细介绍如何在 Tomcat 中实现 SSL 双向认证,包括使用 JDK 的 keytool 工具创建证书、配置 Tomcat 服务器和客户端证书等。 一、SSL 双向认证的重要性 在 Web 应用程序中,安全性是非常重要的,特别是在涉及...

    tomcat配置https单项认证

    标题中的“Tomcat配置HTTPS单项认证”涉及到的是在Apache Tomcat服务器上设置安全套接层(SSL)以实现HTTPS通信的过程,尤其是关于单向认证(也称为客户端认证)的配置。在互联网上,HTTPS是HTTP协议的安全版本,...

    详解用Tomcat服务器配置https双向认证过程实战

    本文将详细阐述如何使用Tomcat服务器配置HTTPS双向认证的过程。 首先,需要明确什么是HTTPS双向认证。HTTPS双向认证是指客户端与服务器在通信过程中,双方都要进行身份验证。也就是说,不仅服务器需要验证客户端的...

    apache-tomcat配置SSL双向认证

    Apache Tomcat配置SSL双向认证是实现安全通信的重要步骤,尤其对于需要高度安全性的Web应用程序。在本文中,我们将深入探讨如何在Tomcat 6环境中设置SSL双向认证,确保客户端和服务器之间的通信既加密又经过身份验证...

    基于IIS的CA认证实现Tomcat双向认证

    本文主要介绍了基于IIS的CA认证实现Tomcat双向认证的过程,涉及到CA服务器的搭建、证书申请、证书颁发和Tomcat的配置等方面。 CA服务器搭建 在Windows 2008上安装“IIS”和“证书服务”,并选择“Active Directory...

    tomcat的双向ssl配置

    4. **配置Tomcat**:将生成的服务器证书和私钥导入到Tomcat的 keystore 中,同时设置Tomcat服务器支持客户端认证,这通常需要修改`server.xml`中的`Connector`元素。 5. **DOS脚本**:文件`c_server.bat`, `c_root....

    在tomcat中使用keytool实现双向验证操作视频

    本教程将详细讲解如何在Tomcat中利用Java自带的keytool工具来生成并配置数字证书,实现双向验证操作。 首先,我们要理解什么是双向认证。在单向认证中,服务器会向客户端展示其数字证书,证明自己的身份,而客户端...

Global site tag (gtag.js) - Google Analytics