Tomcat7配置双向SSL

标签: tomcat7 ssl | 发表时间:2012-01-11 15:10 | 作者:yangjun2
分享到:
出处:http://blog.csdn.net
根证书
1.建立CA工作目录


mkdir ca


cd ca


2.生成CA私钥


openssl genrsa -out ca-key.pem 1024


3.生成待签名证书


openssl req -new -out ca-req.csr -key ca-key.pem
//ca-cert.pem即为CA根证书,可将其下发到客户端,导入作为根证书。私钥changeit


4.用CA私钥自签名
openssl x509 -req -in ca-req.csr -out ca-cert.pem -signkey ca-key.pem -days 365


5.导出pk12
openssl pkcs12 -export -clcerts -in ca-cert.pem -inkey ca-key.pem -out ca-cert.p12


查看证书
 openssl x509 -in ca-cert.pem -noout -text -modulus
 
 如果按请求生成CA证书,由证书申请者生成请求文件certreq.txt。CA端执行签名,生成证书文件1.cer
openssl x509 -req -in c:\certreq.txt -out c:\1.cer -CA ca\ca-cert.pem -CAkey ca\ca-key.pem -days 365 -CAcreateserial




生成server证书
1.创建私钥
openssl genrsa -out server-key.pem 1024


2.创建证书请求
openssl req -new -out server-req.csr -key server-key.pem


3.自签署证书
openssl x509 -req -in server-req.csr -out server-cert.pem -signkey server-key.pem -CA ../ca/ca-cert.pem -CAkey ../ca/ca-key.pem -CAcreateserial -days 365


4.将证书导出成浏览器支持的.p12格式,密码changeit
openssl pkcs12 -export -clcerts -in server-cert.pem -inkey server-key.pem -out server.p12


keytool -keystore serverstore.jks -keypass 123456 -storepass 123456 -alias ca -import -trustcacerts -file ~/ca/ca-cert.pem  
keytool -keystore serverstore.jks -keypass 123456 -storepass 123456 -alias server -import -trustcacerts -file ~/server/server-cert.pem






生成client证书
1.创建私钥 :
openssl genrsa -out client-key.pem 1024


2.创建证书请求 :
openssl req -new -out client-req.csr -key client-key.pem


3.自签署证书 :
openssl x509 -req -in client-req.csr -out client-cert.pem -signkey client-key.pem -CA ../ca/ca-cert.pem -CAkey ../ca/ca-key.pem -CAcreateserial -days 36


 openssl x509 -in client-cert.pem -noout -text -modulus


4.将证书导出成浏览器支持的.p12格式 :
openssl pkcs12 -export -clcerts -in client-cert.pem -inkey client-key.pem -out client.p12
密码:changeit




根据ca证书生成jks文件
keytool -keystore truststore.jks -keypass 123456 -storepass 123456 -alias ca -import -trustcacerts -file ~/ca/ca-cert.pem




导入证书
在客户端浏览器导入ca-cert.p12作为受信任的根证书,client.p12作为个人证书




Tomcat配置
server.xml
jsse模式
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="true" sslProtocol="TLS"
               keystoreFile="../conf/ssl/server.p12" keystorePass="changeit" keystoreType="PKCS12"
               truststoreFile="../conf/ssl/truststore.jks" truststorePass="123456" truststoreType="JKS"/>        
   
 
apr模式
   <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="150"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" scheme="https" secure="true"
               clientAuth="true"
               SSLEnabled="true"
               SSLProtocol="all"
               SSLCipherSuite="ALL"
               SSLCertificateFile="../conf/ssl/server-cert.pem"
               SSLCertificateKeyFile="../conf/ssl/server-key.pem"
               SSLCACertificateFile="../conf/ssl/ca-cert.pem"
               SSLCACertificatePath="../conf/ssl"
               SSLVerifyDepth="15"
               SSLVerifyClient="require" />


注意事项
IE8支持SSLv3,TLS, 不支持SSLv2


参考
apache tomcat doc
http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html 
http://tomcat.apache.org/tomcat-7.0-doc/config/http.html#SSL Support 
 双向ssl-apr
http://618119.com/archives/2007/10/23/13.html          
 双向ssl-jsse
http://www.51testing.com/?uid-257506-action-viewspace-itemid-155641 
http://wenku.baidu.com/view/7f3c491f650e52ea5518987b.html  
 openssl
http://blog.csdn.net/gloomuu/archive/2009/08/17/4456501.aspx   
http://dddspace.com/2009/03/using-openssl-to-generate-certificates.html
http://hi.baidu.com/kobetec/blog/item/706fc0440ff3b44a510ffe0b.html

作者:yangjun2 发表于2012-1-11 23:10:00 原文链接
阅读:66 评论:0 查看评论

相关 [tomcat7 ssl] 推荐:

Tomcat7配置双向SSL

- - CSDN博客推荐文章
//ca-cert.pem即为CA根证书,可将其下发到客户端,导入作为根证书.  如果按请求生成CA证书,由证书申请者生成请求文件certreq.txt. CA端执行签名,生成证书文件1.cer. 4.将证书导出成浏览器支持的.p12格式,密码changeit. 4.将证书导出成浏览器支持的.p12格式 :.

tomcat7之websocket

- - ITeye博客
从tomcat7.0.26之后开始支持websocket,建议大家使用tomcat7.0.30,期间版本的接口有一些改动. chrome默认支持websocket. 其他浏览器可能由于安全原因,默认是关闭的. // 与7.0.27不同的,Tomcat改变了createWebSocketInbound方法的定义,增加了一个HttpServletRequest参数.

tomcat7特性 serlvet async特性

- - 编程语言 - ITeye博客
每个请求来到Web容器,Web容器会为其分配一个线程来专门负责该请求,直到完成处理前,该执行线程都不会被释放回容器. 执行线程会耗用系统资源,若有些请求需要长时间处理(例如长时间运算、等待某个资源),就会长时间占用执行线程. 若这类的请求很多,许多执行线程都被长时间占用,而在web容器内,可以使用的线程都是有限的,这对于系统就会是个负担,甚至造成应用程式的性能瓶颈.

nginx配置ssl

- - 邢红瑞的blog
先生成网关证书 ,仿照CA模式.

(原)CentOS_linux5.5、JDK1.6、tomcat7、nginx、mysql5.1、mongodb安…

- - Linux - 操作系统 - ITeye博客
转: http://blog.sina.com.cn/s/blog_438308750100xsb5.html. # 关闭不需要的服务按上面的安装关闭 ip6tables、jexec、kudzu、lvm2-monitor、mcstrans、netfs、rawdevices、restorecond. 2.禁止Ctrl+Alt+Delete重新启动机器命令.

SSL原理笔记

- - CSDN博客推荐文章
搜索SSL握手的原理,最多是网上转载的Alice和Bob的对话. 用生动、形象的场景说明了一个复杂SSL握手原理. 用公钥加密的数据只有私钥才能解密,相反的,用私钥加密的数据只有公钥才能解密,正是这种不对称性才使得公用密钥密码系统那么有用. 是一个验证身份的过程,目的是使一个实体能够确信对方是他所声称的实体.

SSL工作原理

- - 互联网 - ITeye博客
SSL 是一个安全协议,它提供使用 TCP/IP 的通信应用程序间的隐私与完整性. 超文本传输协议 (HTTP)使用 SSL 来实现安全的通信. 在客户端与服务器间传输的数据是通过使用对称算法(如 DES 或 RC4)进行加密的. 公用密钥算法(通常为 RSA)是用来获得加密密钥交换和数字签名的,此算法使用服务器的SSL数字证书中的公用密钥.

Tomcat7调优及JVM性能优化for Linux环境

- - 互联网 - ITeye博客
该优化针对Linux X86_X64环境. Tomcat优化其实就是对server.xml优化(开户线程池,调整http connector参数). 搜索【<Executor name="tomcatThreadPool"】,开启并调整为. 搜索【port="8080"】,调整为.

Tomcat7集群共享Session 基于redis进行统一管理

- - 行业应用 - ITeye博客
      很多时候,生产环境,需要多个tomcat协作,那么session的统一管理是一个首先需要解决的问题. session的统一管理有很多解决方案,比如存储至数据库、memcache、redis. 那么我想给大家介绍的是将session存储至redis这个方案.        先要感谢开源项目 tomcat-redis-session-manager,感谢作者.

SSL窃听攻击实操

- snowflip - 狂人山庄 | Silence,声仔,吴洪声,奶罩
OK,我恶毒的心灵又开始蠢蠢欲动了. 今天带给大家的是SSL窃听攻击从理论到实际操作的成功例子. SSL窃听最主要的是你要有一张合法的SSL证书,并且证书名称必须和被攻击的网站域名一致. 目前各大CA都有很低廉价格的SSL证书申请,最低的价格只需要10美元不到,甚至还有一些域名注册商大批量采购这些证书,并且在你注册域名的时候免费送你一张.