`

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一起复制到服务器上。

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

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

3.1 根据您选择的证书产品下载相应的根证书,保存为root.cer

全球信SSL专业版根证书(QuickSSL Premium)
全球信SSL企业版根证书(True BusinessID)
全球信SSL增强版根证书(Power ServerID)
闪快SSL普及版根证书(RapidSSL)
免费SSL试用版根证书(FreeSSL)

3.2 运行以下命令,将根证书(root.cer)导入jks文件,作为可信CA证书:
keytool -import -trustcacerts -keystore server.jks -alias root -file root.cer

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

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文件即可。

  • 大小: 77.5 KB
分享到:
评论
1 楼 GGGGeek 2017-07-10  
博主不再写博客了吗?好遗憾,很多博文写的真好啊

相关推荐

    tomcat-redis-session-manager jar包

    【标题】"tomcat-redis-session-manager jar包"是一个用于集成Redis进行Session管理的Java库,特别设计用于Apache Tomcat服务器。这个库使得在多台Tomcat服务器之间共享和协调用户的Session数据成为可能,从而提高了...

    tomcat-redis-session-manager源码

    安全性方面,`Tomcat-Redis-Session-Manager`提供了SSL连接的支持,确保了敏感的会话数据在传输过程中的安全。同时,它还允许配置会话超时时间、序列化策略等,以满足不同应用场景的需求。 总结起来,`Tomcat-Redis...

    apache-tomcat-9.0-windows-x64.zip 内置64位的三个版本尽情使用 吧少年

    7. **安全管理**: Tomcat支持多种安全机制,如SSL/TLS加密、用户认证、角色授权等。在conf/server.xml和conf/tomcat-users.xml文件中可以配置这些安全设置。 8. **日志与监控**: Tomcat会产生各种日志文件,帮助...

    tomcat-redis-session-manager实现session共享 配置文件

    3. **监控与报警**:监控Redis和Tomcat的Session操作,设置报警阈值,以便在出现问题时能及时发现。 通过以上介绍,我们了解了如何使用Tomcat-Redis-Session-Manager实现Session共享。这个方案不仅解决了分布式环境...

    apache-tomcat-8.5.47.tar.gz

    在生产环境中,确保正确配置用户访问控制、SSL/TLS加密以及限制不必要的网络访问是非常重要的。这通常涉及到修改`conf/tomcat-users.xml`和`server.xml`中的相关设置。 9. **监控与优化** 可以通过`manager`应用...

    apache-tomcat-8.5.97-windows-x.zip

    这个压缩包文件 "apache-tomcat-8.5.97-windows-x.zip" 包含了Apache Tomcat 8.5.97 版本在Windows操作系统上的安装内容。下面将详细介绍Tomcat的相关知识点。 1. **Apache Tomcat 的角色**: - Tomcat 是一个实现...

    apache-tomcat-8.5.99-windows-x64.zip

    "apache-tomcat-8.5.99-windows-x64.zip"表明这是专为Windows 64位操作系统设计的。在64位系统上运行64位版本的Tomcat可以充分利用系统的内存资源,对于处理大型应用或高并发场景更为有利。 **4. 安装与配置** 解压...

    apache-tomcat-9.0.2-windows-x64

    "apache-tomcat-9.0.2-windows-x64"指的是Tomcat的第9.0.2版本,针对64位Windows操作系统设计的。这个版本是一个测试版,意味着它可能包含了最新的功能改进和修复,但尚未经过全面的生产环境验证。 1. **Tomcat 9.0...

    最新版linux apache-tomcat-8.5.66.tar.gz

    对于Tomcat,你应该使用SSL/TLS进行加密通信,为此,你需要一个证书和私钥。配置`server.xml`中的`&lt;Connector&gt;`元素来启用HTTPS。同时,确保限制对管理界面(如`/manager`和`/admin`应用)的访问,只允许特定IP或...

    apache-tomcat-8.5.27.tar.gz

    安全方面,Tomcat 8.5.27遵循了最新的安全实践,包括支持SSL/TLS配置来加密通信,限制不安全的协议和算法,以及提供角色基础的访问控制。开发者还可以使用`conf/web.xml`配置文件来实现自定义的安全策略。 在性能...

    apache-tomcat-9.0.21-windows-x64.zip

    3. **NIO.2和APR**:Tomcat 9.0.21包含了对Java NIO.2的全面支持,以及可选的Apache Portable Runtime (APR)库,APR利用操作系统级别的特性,如sendfile和epoll,以提高性能和可伸缩性。 4. **JSP 2.3和EL 3.0**:...

    最新版linux apache-tomcat-8.5.63.tar.gz

    Apache Tomcat是一款开源的Java Servlet容器,主要用于部署和运行Java Web应用程序...总之,Apache Tomcat 8.5.63是Linux系统上部署Java Web应用的重要工具,通过理解其基本结构和操作,可以有效地管理和优化Web服务。

    apache-tomcat-7.0.108(UTF8).zip

    在使用过程中,你可以根据实际需求配置Tomcat的服务器端口、JVM参数、SSL支持等,以适应不同的部署环境和性能要求。同时,定期检查和更新Tomcat的安全补丁和版本升级,以确保系统的稳定性和安全性。

    apache-tomcat-7.0.59-x64.rar

    在安全方面,Tomcat有多种措施来保护服务器,比如限制远程管理接口的访问,使用SSL/TLS加密通信,以及定期更新以修补已知的安全漏洞。 总结起来,"apache-tomcat-7.0.59-x64.rar"是针对64位系统的Tomcat 7.0.59版本...

    tomcat-native-1.2.10-win32-bin.zip

    标题 "tomcat-native-1.2.10-win32-bin.zip" 提供的信息表明,这是一个针对Windows 32位系统的Tomcat原生库的压缩包。Tomcat是Apache软件基金会开发的一款开源Java Servlet容器,它主要用于运行Java Web应用程序。...

    最新版windows apache-tomcat-9.0.68-windows-x64.zip

    在Windows平台上,Tomcat的安装和配置过程相对简单,尤其是对于64位操作系统。`apache-tomcat-9.0.68-windows-x64.zip`是Apache Tomcat 9.0.68的最新版本,专为64位Windows系统设计。这个压缩包包含了运行Tomcat所需...

    tomcat-native-1.2.14-win32-64-bin

    Apache Tomcat Native库是Apache Tomcat项目的一部分,其主要目的是提供与操作系统更紧密的集成,特别是在处理SSL/TLS连接时。这个版本"1.2.14"是针对Windows 32位和64位系统的。"win32-64"表明该版本适用于这两种...

    tomcat-native-1.2.25-src-build

    Tomcat本身是用Java编写,但在某些情况下,为了提升性能或者利用操作系统级别的特性,如多线程处理、SSL加速等,可以启用非Java的本地接口,这就是APR库的角色。 【APR】全称Apache Portable Runtime,是Apache ...

    最新版linux apache-tomcat-9.0.52.tar.gz

    使用非默认端口,限制远程访问,启用SSL/TLS以加密通信,并定期更新服务器。 7. **监控与日志**:监控Tomcat的性能和日志可以帮助识别潜在问题。`catalina.out`文件记录了Tomcat的日志,而`logs`目录下有更详细的...

    apache-tomcat-6.0.37

    例如,它可能包含了对内存泄漏问题的修复,对SSL/TLS连接的安全增强,以及对配置文件和管理工具的改进。 在使用Apache Tomcat 6.0.37时,你需要了解以下几个关键知识点: 1. **安装与配置**:下载解压后,你需要...

Global site tag (gtag.js) - Google Analytics