论坛首页 Java企业应用论坛

利用JDK自带的KeyTool工具实现SSL及Tomcat配置(二)

浏览 3308 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-12-09  
这两天在给一个网站做SSL的加密,加起来整整占用了我两天的时间,现在终于好了。现在把相关的流程和细节给大家一起分享。

当Tomcat作为独立的Web Servcer运行的时候,可以独立处理SSL请求,这个时候,我们就需要在Tomcat上安装SSL证书,如果Tomcat和Apache联合工作,事实上是作为Apache的一个独立进程来负责JSP页面和Servlet,这个时候,我们就需要将SSL证书安装在Apache上,这点需要先确认好。

Tomcat还有一个特殊的模块:APR(Apache Portable Runtime)是为了提高Tomcat处理静态内容性能,提供的组件,其实就是以Apache2.0为核心的一个http服务。在HTTPS方面,APR和Apache一样采用Openssl,在证书安装部分,会简要说明一下。

1.Tomcat支持Jave Keystore文件格式作为SSL证书存储用途。Java Keystore文件的常见扩展名有.jks和.key。要制作JKS文件,有2种主要方式:

   (1) 用JRE自带的Keytool工具。先产生一个新的jks文件,并到处一个csr文件,然后将csr发给CA签名,并将签名后的文件导入jks文件。
     1)生成KeyPair生成密钥对
       keytool -genkey -alias tomcat -keyalg RSA -keystore d:\tomcat.keystore
     2)生成证书签名请求
       keytool –certreq –file tomcat.csr –keystore d:\tomcat.keystore -alias tomcat
    (2) 用openssl工具,制作key和csr文件,将csr发给CA签名得到cer文件,然后将key和cer合并成一个jks文件。(openssl生成证书csr过程略)



2. 把tomcat.csr文件向专门的签名公司申请签名,签名成功后,在负责签名公司的网站上可以下载两份证书,一份是针对你网站的csr文件生成的服务器证书(假设为tomcat.cer),一份是签名公司的中级证书(假设为server.cer),这里要注意一下,有一些网站会提供两张中级证书。
    (1).先导入中级证书server.cer
keytool -import -keystore d:\tomcat.keystore -trustcacerts -storepass yourpassword -file d:\server.cer
如果导入成功,cmd里会提示“认证已经添加至keystore中”。

    (2).导入服务器证书
keytool -import -alias tomcat -keystore d:\tomcat.keystore -trustcacerts -storepass yourpassword -file d:\tomcat.cer
如果导入成功,cmd里会提示“认证回复已安装在keystore中”。

3.配置到tomcat中,因为tomcat版本不同,设定方式也有一点小的区别
假设keystore的位置为:d:\tomcat.keystore
Tomcat 5.5的Server.xml
< Connector port="443" minProcessors="5" maxProcessors="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true";
clientAuth="false" sslProtocol="TLS"
keystoreFile="d:\tomcat.keystore"
keystorePass="yourpassword"/>

Tomcat 6.0的Server.xml
< Connector port="443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="d:\tomcat.keystore"
keystorePass="yourpassword"/>

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics