Tomcat既可以作为独立的Servlet容器,也可以作为其他HTTP服务器附加的Servlet容器。如果Tomcat在非独立模式下工作, 通常不必配置SSL,由它从属的HTTP服务器来实现和客户的SSL通信。Tomcat和HTTP服务器之间的通信无须采用加密机制,HTTP服务器将解 密后的数据传给Tomcat,并把Tomcat发来的数据加密后传给客户。
如果Tomcat作为独立的Java Web服务器,则可以根据安全需要,为Tomcat配置SSL,它包含以下两个步骤:
(1) 准备安全证书。
(2) 配置Tomcat的SSL连接器(Connector)。
一、准备安全证书
我在前面的《SSL简介》一文中讲过,获得安全证书有两种方式:一种方式是到权威机构购买,还有一种方式是创建自我签名的证书。这里就介绍第二种获取证书的方式,毕竟免费的嘛!
SUN公司提供了制作证书的工具keytool。在JDK 1.4以后的版本中都包含了这一工具,它的位置为<JAVA_HOME>\bin\keytool.exe。此外,也可以到SUN的网站上下载,下载地址如下:
http://java.sun.com/j2se/1.5.0/docs/tooldocs/#security
通过keytool工具创建证书的命令为:
- keytool -genkeypair -alias "tomcat" -keyalg "RSA"
以上命令将生产一对非对称密钥和自我签名的证书,这个命令中几个参数的意思如下:
- -genkeypair:生成一对非对称密钥。
- -alias:指定密钥对的别名,该别名是公开的。
- -keyalg:指定加密算法,本例中的采用通用的RAS加密算法
首先会提示输入keystore的密码,这里我输入的密码是sunchis。
然后提示输入个人信息,如姓名、组织单位和所在城市等,只要输入真实信息即可。
接着会提示输入信息是否正确,输入“y”表示信息正确。
最后要求输入<Tomcat>的主密码,这里设置与keystore相同的密码,因此只需根据提示按回车键即可。
以上命令将在操作系统的用户目录下生成名为“.keystore”的文件。我当前登录到操作系统的用户名是XuLiang,那么在Wnidows下,文件的位置为:
C:\Documents and Settings\XuLiang\.keystore
在Linux下,该文件的位置为:home\XuLiang\.keystore
另外,如果希望生成的keystore文件存放在其他目录中,可以再keytool命令中加入-keystore参数,这个参数用来指定keystore文件的存放位置,例如以下命令将在D:\下生成名为“sunchis.keystore”的文件:
- keytool -genkeypair -alias "tomcat" -keyalg "RSA" –keystore "D:\sunchis.keystore"
查看已生成的证书的命令为:
- keytool -list -keystore "C:\Documents and Settings\XuLiang\.keystore"
二、配置SSL连接器
在Tomcat的server.xml文件中,已经提供了现成的配置SSL连接器的代码,只要把<Connector>元素的注释去掉即可:
- <!—
- Define a SSL HTTP/1.1 Connector on port 8443
- This connector uses the JSSE configuration, when using APR, the
- connector should be using the OpenSSL style configuration
- described in the APR documentation
- -->
- <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
- maxThreads="150" scheme="https" secure="true"
- clientAuth="false" sslProtocol="TLS"
- keystoreFile="C:\Documents and Settings\XuLiang\.keystore"
- keystorePass="SUNCHIS"
- ciphers="sunchis"
- />
实际上,基于SSL的HTTPS使用的默认端口是443。但Tomcat在这里将HTTPS端口设置为8443。<Connector>配置里的一些属性参数如下表:
属 性 | 描 述 |
clientAuth | 如果设为true,表示Tomcat要求所有的SSL客户出示安全证书,对SSL客户进行身份验证 |
keystoreFile | 指定keystore文件的存放位置,可以指定绝对路径,也可以指定相对于<CATALINA_HOME> (Tomcat安装目录)环境变量的相对路径。如果此项没有设定,默认情况下,Tomcat将从当前操作系统用户的用户目录下读取名为 “.keystore”的文件。 |
keystorePass | 指定keystore的密码,如果此项没有设定,在默认情况下,Tomcat将使用“changeit”作为默认密码。 |
sslProtocol | 指定套接字(Socket)使用的加密/解密协议,默认值为TLS,用户不应该修改这个默认值。 |
ciphers | 指定套接字可用的用于加密的密码清单,多个密码间以逗号(,)分隔。如果此项没有设定,在默认情况下,套接字可以使用任意一个可用的密码。 |
三、访问支持SSL的Web站点
由于SSL技术已建立到绝大多数浏览器和Web服务器程序中,因此,仅需在Web服务器端安装服务器证书就可以激活SSL功能了。
如果上述的第一步和第二步已经配置完毕,那么就可以重启Tomcat服务器了,然后从IE浏览器中以HTTPS方式来访问在Tomcat服务器上的任何一个Web应用。现在我们就来访问一下这个地址:
当Tomcat收到这一HTTPS请求后,会向客户的浏览器发送服务器的安全证书,IE浏览器接受到证书后,将向客户显示安全警报窗口,如下图:
在安全警报窗口中的第一行提示信息为:“您与该站点交换的信息不会被其他人查看或更改。但该站点的安全证书有问题。”这句话的意思是,一方面,该安 全证书非权威机构颁发,不能作为有效的验证对方身份的凭据。另一方面,假如与对方通信,通信数据会经过加密后在网络上传输,因此不会被他人监视或修改。
如果单击“【否】”按钮,就表示不信任该服务器出示的安全证书,因此浏览器会结束与Tomcat服务器的通信。
如果单击“【是】”按钮,表示信任Tomcat服务器出示的安全证书,浏览器将建立与Tomcat服务器的SSL会话,Tomcat服务器就会把客户请求的数据发送过来。
如果单击“【查看证书】”按钮,将出现证书窗口,如下图:
从图中可以看到证书的“颁发者”和“颁发给”都是同一个人,这说明是自我签名的证书,非权威机构颁发。
从证书的详细信息中可以看出,在证书中公布了证书发送者的身份和公钥。而私钥只有证书发送者拥有,不会向证书接受者公开。
相关推荐
本篇文章将详细介绍如何在Nginx和Tomcat上安装阿里云提供的免费SSL安全证书,以实现网站的HTTPS访问。 首先,我们需要了解SSL证书的基本概念。SSL证书由权威的证书颁发机构(CA)签发,它包含了网站的公钥、组织...
对于使用Java应用服务器如Apache Tomcat部署的服务来说,安装并配置正确的SSL证书是非常重要的一个环节。本文将详细介绍如何在Tomcat服务器中安装CA证书。 #### 二、准备工作 在进行安装之前,需要完成以下准备...
标题"Tomcat SSL 认证设置及证书自己生成"涉及的核心知识点是Tomcat服务器的SSL安全套接层配置以及如何自签发CA(证书颁发机构)证书。SSL是Secure Socket Layer的缩写,是互联网上确保数据传输安全的一种协议。它...
openSSL证书生成及Tomcat配置 本文将详细介绍openSSL证书生成和在Tomcat上的配置。首先,我们将学习openSSL的基本概念和命令,然后逐步生成服务器端和客户端的证书文件,并介绍如何使用CA证书签名这些证书文件。...
- 对于生产环境,通常需要从权威的证书颁发机构(CA)购买一个正式的SSL证书。 2. **创建Keystore**: - 使用`keytool`命令行工具(位于Java SDK的bin目录下)创建一个新的Keystore文件,存放私钥和公钥。 - ...
以下将详细讲解如何在Tomcat中配置SSL证书。 首先,了解SSL证书的基本概念。SSL证书包含了一个公钥和私钥对,用于在客户端(如浏览器)和服务器之间建立安全的加密连接。它通常由权威的证书颁发机构(CA)签发,以...
**Tomcat SSL证书部署指南** 在互联网通信中,安全是一个至关重要的因素,特别是对于处理敏感信息的应用服务器,如Apache Tomcat。SSL(Secure Sockets Layer)证书是确保数据传输安全的关键工具,它通过加密连接来...
1. **SSL证书**:SSL配置的核心是SSL证书,它是由权威的证书颁发机构(CA)签署的数字证书,包含了网站的身份信息以及公钥。证书用于验证服务器身份并加密客户端与服务器之间的通信。 2. **Tomcat的Keystore**:...
对于Tomcat 8.5及之后版本,SSL证书的配置方式有所变更,更推荐用户使用Tomcat的配置文件(server.xml)中的元素来配置HTTPS连接。这部分通常涉及到对Connector元素进行修改,以支持新的加密算法和协议。 在SSL证书...
本文将深入探讨如何在Tomcat6中实现SSL双向认证,包括证书的生成、配置以及应用。 ### 一、CA证书生成 #### 1. 私钥生成 首先,通过OpenSSL工具生成一个私钥。在命令行中执行以下命令: ```bash C:\OpenSSL\bin>...
**标题:** Tomcat6配置SSL **描述:** 在互联网中,数据传输的安全性至关重要,特别是在涉及用户敏感信息的Web应用中。SSL(Secure Sockets Layer)协议是实现这种安全性的基础,它通过加密通信和身份认证来保护网络...
4. **修改Tomcat配置**:打开Tomcat的服务器配置文件`server.xml`,在这个文件中,我们需要添加一个名为`<Connector>`的元素来配置SSL连接器。以下是基本配置示例: ```xml SSLEnabled="true" maxThreads="150...
Tomcat 开启基于 HTTPS 的 SSL 配置 ...Tomcat 作为一个流行的 ...配置 Tomcat 的 HTTPS 需要具备 SSL 证书,生成 JKS 格式证书,并在 Tomcat 中配置 HTTPS。这样,我们就可以使用 HTTPS 协议,保护用户的隐私和数据。
5. **安装证书**:将CA签发的证书导入到你的密钥库中: ``` keytool -import -trustcacerts -file your_certificate.crt -alias tomcat -keystore keystore.jks ``` 6. **配置Tomcat**:在Tomcat的`conf/server...
本文档分为两章,第一章讲述如何在Windows 2008服务器上搭建CA服务器,第二章讲述如何在Tomcat 5上申请CA证书并配置SSL加密传输。 第一章:搭建CA服务器 ### 1. 安装"IIS"和"证书服务" 在Windows 2008服务器上,...
4. **安装签署后的证书**:收到CA签署的证书后,将其导入到Keystore中: ``` keytool -import -trustcacerts -file signed_certificate.crt -alias tomcat -keystore server_keystore ``` 5. **修改Tomcat配置**...
"openSSL生成证书以及在tomcat下的配置" openSSL是目前最流行的开源加密库之一,它提供了安全的数据传输和认证机制。在Web应用程序中,openSSL广泛应用于生成数字证书和私钥,从而确保数据的安全传输。今天,我们将...