您访问的是老版本网站,请点击 这里 浏览新版网站。
          |  臺灣  |  English  |  如何付款  |  联系我们
 
  技术支持服务: 欢迎来到客户服务中心。  
     购买证书
     解决方案
     代理商

Tomcat - SSL操作大全

简介

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,目前最新版本是6.0.20(截止到2009-10-22)。

Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。

当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,在证书安装部分,会简要说明一下。

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

  1. 用JRE自带的Keytool工具。先产生一个新的jks文件,并到处一个csr文件,然后将csr发给CA签名,并将签名后的文件导入jks文件。
  2. 用openssl工具,制作key和csr文件,将csr发给CA签名得到cer文件,然后将key和cer合并成一个jks文件。


制作CSR申请文件

1、制作Tomcat用CSR请求文件,最简单的办法就直接使用我们的 OpenSSL CSR在线生成器: https://www.myssl.cn/openssl/createcsr.asp
(注意:您必须同时保存server.key和server.csr文件)

2、常见的JKS文件制作,要采用Keytool工具,这个工具是JRE自带的。通过命令行的方式输入CSR信息,而且可以支持中文资料。
首先,生成一个新的jks文件,命令如下:
keytool -genkey -alias tomcat -keyalg RSA -keystore c:\server.jks

 输入密钥库密码:changeit
您的姓名是什么?
  [未知]:  www.myssl.cn
您的组织单位名称是什么?
  [未知]:  Shanghai Fastcom Technology Co.,Ltd
您的组织名称是什么?
  [未知]:  It Dept.
您的市/县/区或地点名称是什么?
  [未知]:  Shanghai
您的省/直辖市名称是什么?
  [未知]:  Shanghai
此单位的两字母国家或地区代码是什么?
  [未知]:  CN
CN=www.myssl.cn, OU="Shanghai Fastcom Technology Co.,Ltd", 
O=It Dept., L=Shanghai, ST=Shanghai, C=CN 正确吗?
(输入“yes”或“no”)
  [否]:  Y

为 <tomcat> 输入密钥密码
        (如果与密钥库密码相同则返回):

说明: 输入keystore密码: 请输入保护证书密钥的密码。
 
您的名字与姓氏是什么?请输入域名,例如:www.myssl.cn
 
您的组织单位名称是什么?请输入单位名称,如: Shanghai Fastcom Technology Co Ltd
 
您的组织名称是什么?请输入部门名称,如: IT Dept
 
您所在的城市或区域名称是什么?输入城市名称,如:Shanghai
 
您所在的州或省份名称是什么?输入省份名称,如:Shanghai
 
该单位的两字母国家代码是什么?中国请输入CN
 
CN=www.myssl.cn, OU=Shanghai Fastcom Technology Co Ltd, O=IT Dept, L=Shanghai, ST=Shanghai, C=CN 正确吗?输入 Y
 
输入的主密码(如果和 keystore 密码相同,按回车):按回车
 

根据这个jks文件产生一个csr文件,输入命令:
keytool -certreq -alias tomcat -keystore server.jks -file server.csr


安装证书文件

1、将证书内容存为一个文件:

您会收到一封来自迅通诚信的邮件,证书内容附在邮件中。如果证书是以附件的形式(Cert.cer)夹带在邮件中,您就可以直接应用它。如果您的证书中以文本的方式存在邮件中,您就需要将邮件中的证书部分的内容用Vi或Notepad存成一个纯文本文件。不要将其存成Microsoft Word 或其它字处理软件格式,并确定证书内容中不含有空行和空格,文件名可以为server.cer。如下所示:

将证书保存为文本文件格式
将保存好的server.cer文件和制作CSR时候生成的server.key一起复制到服务器上。

2、如果是使用在线工具制作的CSR文件,请打开在线JKS合成工具,将制作CSR时候的server.key文件和刚刚收到的server.cer输入2个文本框,然后合成一个server.jks文件。

3、如果是用keytool做的CSR文件,则需要按下面方式,将证书导入原来的jks文件。

3.1 请使用P7B在线转换工具将server.cer转换为P7B文件:
请用Notepad打开server.cer文件,将其中的全部内容(包含-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----),将全部内容复制到P7B在线转换工具中的文本框中,然后点击“合成P7B文件”。待合成成功后,下载文件,保存为cert.txt。

3.2 然后运行命令,将CA签好的证书文件cert.txt导入jks文件:
keytool -import -keystore server.jks -alias tomcat -file cert.txt

4、如果没有APR的Tomcat,按下面例子更新Server.xml文件配置

<-- Define a SSL Coyote HTTP/1.1 Connector on port 443 -->
<!--Tomcat 5.5 
<Connector 
           port="8443" minProcessors="5" maxProcessors="75"
           enableLookups="true" disableUploadTimeout="true"
           acceptCount="100" debug="0" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS"
           keystoreFile="server.jks" keystorePass="changeit"/>
-->
注意:不同tomcat版本,修改server.xml的方式不同,请参考tomcat说明:
tomcat 6.0 http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
tomcat 5.5 http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html
tomcat 5.0 http://tomcat.apache.org/tomcat-5.0-doc/ssl-howto.html
tomcat 4.1 http://tomcat.apache.org/tomcat-4.1-doc/ssl-howto.html
 

5、配置了APR的Tomcat,需要使用server.key和server.cer文件,并按mod_ssl的语法来更新Server.xml文件配置

<-- Define a APR SSL Coyote HTTP/1.1 Connector on port 443 --&rt;
<!--
<Connector protocol="org.apache.coyote.http11.Http11AprProtocol"
           port="443" minSpareThreads="5" maxSpareThreads="75"
           enableLookups="true" disableUploadTimeout="true" 
           acceptCount="100"  maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           SSLCertificateFile="server.cer" 
           SSLCertificateKeyFile="server.key"
           SSLVerifyClient="none"  sslProtocol="TLS"/>
-->

客户证书认证

1、没有APR模块的Tomcat,如果需要采用客户证书认证(双向SSL认证),需要在server.xml中增加以下配置:

           clientAuth="true"
           truststoreFile="ca.jks"
           truststorePass="changeit"	

说明:
clientAuth="true",表示必须有客户证书才可以访问。
clientAuth="false",表示不验证是否有客户证书。
clientAuth="want",表示会检查客户证书,但如果没有也可以继续访问。

2、使用APR模块的Tomcat,需要用mod_ssl的语法来配置客户证书认证,增加以下配置:

           SSLVerifyClient="require"
           SSLCACertificateFile="ca.cer"		

详细参数,可以参考Apache SSL文档说明。

证书的备份(导出)

Tomcat的证书备份,只需要将server.jks文件(或可查看server.xml中keystoreFile对应的那个jks文件)复制到备份媒质上即可了。


证书的恢复(导入)

要恢复Tomcat的证书同样非常简单,将备份的jks文件,复制到新的服务器上,然后参考上面服务器证书安装说明,修改server.xml文件即可。

 
技术文档资料

技术名词解释

CSR的生成
   Apache 2.2
   cPanel
   Exchange 2007
   F5 BIG-IP
   IBM Websphere 5.1
   IBM Websphere 6.1
   IBM Websphere 7
   IBM Websphere 8.0
   IBM Websphere MQ
   IBM HTTP Server
   Lighttpd
   Lotus Domino
   Mod SSL
   Netscape iPlanet 4.x
   Netscape iPlanet 6.x
   Nginx
   Plesk Server
   Postfix
   Red Hat Secure Web      Server
   Resin
   SAN/UCC
   Stronghold
   Tomcat
   WebLogic 6.0
   WebLogic 8.1
   Webstar 4.x
   Windows 2000 - IIS 5.0
   Windows 2003 - IIS 6.0
   Windows 2008 - IIS 7.0
   Zeus

SSL证书申请流程

服务器证书的安装

服务器证书的备份

服务器证书的导入

联系销售人员

常见问题与解答