`
benx
  • 浏览: 276294 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

keytool简单使用和tomcat双向认证

阅读更多

 

本文将使用keytoolopenssl工具来自己生成证书,包含CA,私钥,jks证书管理,配置tomcat的双向认证

 

1、安装openssl

# tar zxvf openssl

# cd openssl

# ./config --prefix=/usr/local/openssl

# make

# make install

 

2、生成CA证书和私钥

openssl req -new -x509 -days 18900 -sha1 -newkey rsa:1024 -keyout  ca_private.key -out  ca.crt 
正常情况下CA代表大家都可信任的机构,比如VeriSign机构,但是这里为了测试,自己生成一个CA

 

3、配置openssl

打开openssl_home/apps/openssl.cnf,找到如下部分

dir             = ./demoCA              # Where everything is kept

certs           = $dir/certs            # Where the issued certs are kept

crl_dir         = $dir/crl              # Where the issued crl are kept

database        = $dir/index.txt        # database index file.

#unique_subject = no                    # Set to 'no' to allow creation of

                                        # several ctificates with same subject.

new_certs_dir   = $dir/newcerts         # default place for new certs.

 

certificate     = $dir/ca.crt       # The CA certificate

serial          = $dir/serial           # The current serial number

crlnumber       = $dir/crlnumber        # the current crl number

                                        # must be commented out to leave a V1 CRL

crl             = $dir/crl.pem          # The current CRL

private_key     = $dir/private/ca_private.key# The private key

RANDFILE        = $dir/private/.rand    # private random number file

 

 

修改certificate     private_key     这两个分别代表CA和私钥,修改为你自己的CA和私钥文件

database        ,每生成一个证书,这里会有记录,如果重复生成,可以把之前生成记录删除

new_certs_dir  ,这个是证书生成后保存地址

 

 

4、创建服务器证书cn要和域名一样 在keystorekeyentry 

 keytool -genkey -validity 3650 -keyalg RSA  -alias server -keysize 1024 -keystore tomcat.store       
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

 

5、创建服务证书请求

keytool -certreq -alias server -sigalg MD5withRSA -file server.csr -keystore tomcat.store    

 

6、用ca证书和私钥签名服务器证书请求(一般由CA中心认证,这里用我自己生成的CA和私钥来签名
openssl ca -in server.csr -out tomcat_server.crt -notext -config openssl.cnf     

在使用这个命令之前特别主要在openssl中已经配置了caprivate,在生成过程中如果发现某个文件不存在,创建它即可

 

7、把ca导入到keystore,当作信任证书 在keystoretrustedCertEntry 

keytool -import -v -trustcacerts -alias mas_ca -file ca.crt -keystore tomcat.store               
trustcacerts
就是说,在浏览器使用的证书如果要访问该网站,证书必须是由该CA生成或CA的子证书签名生成

 

8、导入服务器证书到keystore

keytool -import -v -file tomcat_server.crt -alias server -keystore tomcat.store 
把服务器导入到keystore,此时的keyEntry是有证书链的.如果直接使用keytoolimport类型为trustedCertEntry,使用keytoolgenkey这时是keyEntry,但是没有证书链,如果要要有证书链可以如上,先签名后用ca认证,再导入ca证书,import 

 

查看keystore

C:\key>keytool -v -list -keystore tomcat.store

输入keystore密码:  mas123

 

Keystore 类型: jks

Keystore 提供者: SUN

 

您的 keystore 包含 2 输入

 

别名名称: mas_ca

创建日期: 2011-5-19

输入类型: trustedCertEntry

 

Owner: CN=xiongjin, OU=99bill, O=99bill, ST=shanghai, C=cn

发照者: EMAILADDRESS=xiongjin1983@gmail.com, CN=localhost, OU=99bill, O=99bill, L=shanghai, ST=shanghai, C=cn

序号: 11f

有效期间: Thu May 19 14:01:09 CST 2011 至: Fri May 18 14:01:09 CST 2012

认证指纹:

         MD5  BD:5F:F2:27:BD:A7:EA:B1:92:D9:D9:06:21:F2:C6:C2

         SHA1 15:86:43:C2:49:B9:CA:60:5F:91:BB:E1:5B:39:91:37:78:F0:9E:66

 

 

*******************************************

*******************************************

 

 

别名名称: server

创建日期: 2011-5-19

输入类型:KeyEntry

认证链长度: 2

认证 [1]:

Owner: CN=xiongjin, OU=99bill, O=99bill, ST=shanghai, C=cn

发照者: EMAILADDRESS=xiongjin1983@gmail.com, CN=localhost, OU=99bill, O=99bill, L=shanghai, ST=shanghai, C=cn

序号: 11f

有效期间: Thu May 19 14:01:09 CST 2011 至: Fri May 18 14:01:09 CST 2012

认证指纹:

         MD5  BD:5F:F2:27:BD:A7:EA:B1:92:D9:D9:06:21:F2:C6:C2

         SHA1 15:86:43:C2:49:B9:CA:60:5F:91:BB:E1:5B:39:91:37:78:F0:9E:66

认证 [2]:

Owner: EMAILADDRESS=xiongjin1983@gmail.com, CN=localhost, OU=99bill, O=99bill, L=shanghai, ST=shanghai, C=cn

发照者: EMAILADDRESS=xiongjin1983@gmail.com, CN=localhost, OU=99bill, O=99bill, L=shanghai, ST=shanghai, C=cn

序号: f71d6ea47619bb8f

有效期间: Thu May 19 09:52:00 CST 2011 至: Mon Jan 10 03:29:36 CST 1927

认证指纹:

         MD5  C2:E0:B1:FD:66:0D:BD:16:D2:2C:C1:87:8A:01:68:16

         SHA1 21:38:9A:28:A0:95:E6:1E:13:42:85:8E:BB:B9:99:4B:8A:0B:0F:06

 

 

*******************************************

*******************************************

 

9、配置tomcat双向认证打开tomcat server.xml文件,修改配置 
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
               maxThreads="150" scheme="https" secure="true" 
               clientAuth="false" sslProtocol="TLS" 
               keystoreFile="conf/tomcat.store" keystorePass="mas123" 
               truststoreFile="conf/tomcat.store" truststorePass="mas123"/> 

 

 

 

使用httpClient访问ssl

 

//第一个URL对应的keystorekeystore,里面包含客户端证书

//第二个URL对应的keyStoretruststore,基本和服务器的truststore一致

Protocol authhttps = new Protocol("https", new AuthSSLProtocolSocketFactory(new URL("file:c:/tomcat.store"), "mas123", new URL("file:c:/tomcat.store"), "mas123"), 8443);

 

HttpClient client = new HttpClient();

client.getHostConfiguration().setHost("localhost", 8443, authhttps);

PostMethod httpget = new PostMethod("/");

int i = client.executeMethod(httpget);

String respXml = new String(httpget.getResponseBody(), "UTF8");

System.out.println(respXml);

分享到:
评论

相关推荐

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

    下面是使用 Keytool 生成证书和配置 Tomcat 实现 HTTPS 双向证书认证的步骤。 第一步:为服务器生成证书 使用 Keytool 生成证书需要在命令行中输入一些必要的参数,包括证书的别名、密钥算法、证书文件的路径和...

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

    综上所述,这个主题涵盖了Java安全、SSL/TLS协议、keytool的使用方法、Tomcat的SSL配置以及单向和双向认证的概念。学习和掌握这些知识对于进行安全的Web服务部署和管理至关重要。在实际操作时,务必注意证书的有效期...

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

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

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

    4. **server.xml和web.xml配置**:这两个文件是Tomcat的核心配置文件,通过修改它们可以实现所需的HTTPS双向认证功能。 #### 实现步骤 ### 一、Tomcat服务器配置 #### 1. 修改server.xml文件 为了使Tomcat支持...

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

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

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

    在Java的Web应用服务器Tomcat中,为了增强通信的安全性,常常会采用SSL(Secure Sockets Layer)协议进行数据传输,而SSL中的双向认证(Mutual TLS)则是一种更为严谨的安全策略。本教程将详细讲解如何在Tomcat中...

    tomcat实现SSL双向认证

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

    tomcat 实现https 双向认证通信

    本文主要介绍如何在Linux平台上,使用Apache Tomcat、OpenSSL以及Java Keytool来实现HTTPS通信,并进一步完成双向认证的功能。文章假设读者具备基本的Linux操作技能以及对Tomcat有一定的了解。 #### 环境配置 - **...

    Tomcat下使用ssl实现双向认证[网络安全]

    其中,`clientAuth="true"`开启双向认证,`keystoreFile`和`truststoreFile`分别指定Keystore和Truststore路径,`keystorePass`和`truststorePass`是对应的密码。 5. **重新启动Tomcat**: 修改配置后,重启...

    Tomcat配置SSL双向认证

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

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

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

    Tomcat服务器配置https双向认证

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

    Tomcat6和5.5配置使用SSL双向认证(使用openssl生成密钥).rar

    在这个场景中,我们将探讨如何在Tomcat 6和5.5版本中配置SSL双向认证,并使用openssl工具生成必要的密钥文件。 **一、生成CA证书** 创建一个自签名的根证书颁发机构(Root CA)是SSL双向认证的第一步。这可以通过...

    apache-tomcat配置SSL双向认证

    在本文中,我们将深入探讨如何在Tomcat 6环境中设置SSL双向认证,确保客户端和服务器之间的通信既加密又经过身份验证。 首先,系统需要满足以下前提条件: 1. JDK 5.0 或更高版本 2. Tomcat 6.0.16 或更新版本 **...

    基于Tomcat搭建SSL双向认证示例【100012422】

    本示例将深入探讨如何使用Tomcat搭建SSL(Secure Socket Layer)双向认证环境,以及通过Java原生类库SSLSocket进行编程,以及使用Apache的Httpclient库模拟安全的客户端请求。以下是对这些知识点的详细讲解。 首先...

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

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

    Tomcat6配置使用SSL双向认证

    ### Tomcat6配置使用SSL双向认证 在网络安全领域,SSL(Secure Sockets Layer,安全套接层)协议及其后续版本TLS(Transport Layer Security,传输层安全)被广泛应用于保护网络通信的安全性和数据完整性。双向认证...

Global site tag (gtag.js) - Google Analytics