Windows环境 tomcat的OpenSSL双向认证 问题

转载 2013年12月05日 15:25:36
先下载 
tomcat5.5.26 下载http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-5/v5.5.26/bin/apache-tomcat-5.5.26.zip  
openssl0.9.7c下载http://gnuwin32.sourceforge.net/downlinks/openssl-bin.php  
tomcat:  C:\tomcat 
openssl: C:\GnuWin32 
把环境配置好使tomcat 能够跑起来 

建目录 
C:\root,用来存放生成的临时文件。 
新建文件openss.txt,然后改名openss.conf 路径:C:\GnuWin32\bin\openss.conf,内容如下: 
[ req ] 
default_bits           = 1024 
default_keyfile        = ca-key.pem 
distinguished_name     = req_distinguished_name 
attributes             = req_attributes 
prompt                 = no 
output_password        = as12345 

[ req_distinguished_name ] 
C                      = CN 
ST                     = Guangdong 测试省份 
L                      = Shenzhen 测试地点 
O                      = Gardent 机构名称 
OU                     = Java  组织单位名称 
CN                     = Aisce    通用名称 
emailAddress           = email@gmail.com 

[ req_attributes ] 
challengePassword  = 12345678 

执行cmd.exe,在命令行窗口执行如下操作: 
cd C:\GnuWin32\bin      进入GnuWin32安装目录的bin 文件夹 
输入: 
生成 CA 证书的 RSA 密钥对 
openssl genrsa -out c:\root\ca-key.pem 1024    
genrsa  用于生成 RSA 密钥对的 OpenSSL 命令 
-out 令生成的密钥对保存到文件 c:\root\ca-key.pem 
1024 RSA 模数位数,在一定程度上表征了密钥强度 

生成待签名证书 
openssl req -new -out c:\root\ca-req.csr -key c:\root\ca-key.pem -config openssl.conf 
req 用于生成证书请求的 OpenSSL 命令 
-new 生成一个新的证书请求 
-key 指定 c:\root\ca-key.pem 为证书所使用的密钥对文件。 

用CA私钥进行自签名 
openssl x509 -req -in c:\root\ca-req.csr -out c:\root\ca-cert.pem -signkey c:\root\ca-key.pem -days 365 
x509 生成一份 X.509 证书 
-in 指定用户证书请求文件为 ca-req.csr  
-signkey 把输入的文件变成字签名的证书 

生成server端证书 

生成KeyPair,注意keyPass,storepass 要一样 
keytool -genkey -alias aisce -validity 365 -keyalg RSA -keysize 1024 -keypass abcdef -storepass   abcdef -dname "cn=localhost,ou=department,o=company,l=Beijing,st=Beijing,c=CN" -keystore c:\root\aisce.jks 

生成待签名证书 
keytool -certreq -alias aisce -sigalg MD5withRSA -file c:\root\aisce.csr -keypass abcdef -keystore c:\root\aisce.jks -storepass abcdef 

用CA私钥进行签名 
openssl x509 -req -in c:\root\aisce.csr -out c:\root\aisce-cert.pem -CA c:\root\ca-cert.pem -CAkey  c:\root\ca-key.pem -days 365 -set_serial 1 

导入信任的CA根证书到Java的默认位置 
keytool -import -v -trustcacerts -storepass changeit -alias root_aisce -file c:\root\ca-cert.pem -keystore %JAVA_HOME%\jre\lib\security\cacerts 

把CA签名后的server端证书导入keystore 
提示时,输入abcdef 
keytool -import -v -trustcacerts -storepass abcdef -alias aisce -file c:\root\aisce-cert.pem -keystore c:\root\aisce.jks 

查看server端证书 
密码分别是changeit, abcde 
keytool -list -keystore %JAVA_HOME%\jre\lib\security\cacerts 
keytool -list -keystore c:\root\aisce.jks 


在C:\tomcat-5.5.26\conf\server.xml找到 
     <!-- Define a SSL HTTP/1.1 Connector on port 8443 --> 
    <!-- 
    <Connector port="8443" maxHttpHeaderSize="8192" 
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
               enableLookups="false" disableUploadTimeout="true" 
               acceptCount="100" scheme="https" secure="true" 
               clientAuth="false" sslProtocol="TLS" /> 
    --> 
   改为: 
   <!-- Define a SSL HTTP/1.1 Connector on port 8443 --> 
    <Connector port="8443" maxHttpHeaderSize="8192" 
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
               enableLookups="false" disableUploadTimeout="true" 
               acceptCount="100" scheme="https" secure="true" 
               clientAuth="false" sslProtocol="TLS"  
               keystoreFile="C:\tomcat\conf\aisce.jks" keystorePass="abcdef"/> 

将C:\root\aisce.jks复制到C:\tomcat\conf\下 

Client端安装信任的根证书 
将c:\root\ca-cert.pem改名为c:\root\ca-cert.cer,在client端的IE中使用"工具-->Internet选项-->内容-->证书-->导入"把我们生成的CA根证书导入,使其成为用户信任的CA。 
在IE浏览器的地址栏中输入https://localhost:8443 
测试成功,状态栏上的小锁处于闭合状态,表示您已经成功地与服务器建立了要求客户端验证的SSL安全连接 



按理上面得因该可以实现了,但是我到红色部分就不能执行了. 请各位大侠们指教. 

window apache+openssl双向认证配置

window apache+openssl双向认证配置 参考资料:http://www.iteye.com/topic/1131378 一 环境 在window上和在linux上配置步骤差...
  • sohu_2011
  • sohu_2011
  • 2016年06月15日 18:42
  • 879

使用Openssl为Tomcat配置SSL(双向认证)

转载请注明出处:http://blog.csdn.net/sunyujia/其实我手头上有许多正规ca颁发的证书不过都是过期的,每次使用都需要调整系统日期,不方便,所以就想自己做一套以备平时测试使用。...
  • sunyujia
  • sunyujia
  • 2008年10月05日 13:15
  • 17991

Openssl CA证书生成以及双向认证,及windows系统证书批量导出,android cer转bks

Openssl CA证书生成以及双向认证首先本文主要参照这篇文章写的 http://h2appy.blog.51cto.com/609721/1181234只是途中有些问题折腾了一下,比如opens...
  • HeroRazor
  • HeroRazor
  • 2016年05月25日 11:02
  • 5714

ssl双向认证-openssl生成证书

一、前言 已有教程大部分是使用jdk自带keytool生成自签名证书,自己测试可以的,但是用于生成时,在双向认证中服务器认证客户端时,不可避免的每增加一个客户,服务器端需要添加信任列表。 解决方法...
  • zyw19871007
  • zyw19871007
  • 2016年07月23日 13:46
  • 1083

在Java中使用openssl制作的双向认证

一 创建根证书 1 生成根证书私钥 openssl genrsa -des3 -out root.key 1024 密码为:handwin1 2 生成根证书签名请求文件 openssl req -...
  • u012333307
  • u012333307
  • 2014年03月20日 10:04
  • 1214

测试浏览器与OpenSSL的双向认证

测试浏览器与OpenSSL的双向认证     一、背景        在安全级别要求高的项目中,我们可能采取双向SSL认证的方案来保证数据在通信的过程中的安全。       二、原理        双...
  • xiangguiwang
  • xiangguiwang
  • 2017年07月31日 23:56
  • 400

openssl双向认证 (自签发证书实例)

基础知识 SSL:Secure Socket Layer,安全套接字层,它位于TCP层与Application层之间。提供对Application数据的加密保护(密文),完整性保护(不被篡改...
  • chen55bo
  • chen55bo
  • 2017年12月22日 13:55
  • 85

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

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入S...
  • xxd851116
  • xxd851116
  • 2014年01月23日 12:57
  • 40832

ssl介绍以及双向认证和单向认证原理

证书介绍 SSL安全证书可以自己生成,也可以通过第三方的CA(Certification Authority)认证中心付费申请颁发。 SSL安全证书包括: 1.       CA...
  • lonelyrains
  • lonelyrains
  • 2013年12月18日 16:46
  • 2795

OpenSSL 双向认证

在使用OpenSSL进行SSL双向认证时,需要在服务器和客户端配置如下接口函数: SSL_CTX_set_verify(SSL_CTX* ctx,int mode,int (*verify_c...
  • wangsifu2009
  • wangsifu2009
  • 2012年05月15日 17:11
  • 5108
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows环境 tomcat的OpenSSL双向认证 问题
举报原因:
原因补充:

(最多只允许输入30个字)