`

Tomcat SSL配置及Tomcat CA证书安装

 
阅读更多

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工具创建证书的命令为:

  1. keytool -genkeypair -alias "tomcat" -keyalg "RSA" 

以上命令将生产一对非对称密钥和自我签名的证书,这个命令中几个参数的意思如下:

  • -genkeypair:生成一对非对称密钥。
  • -alias:指定密钥对的别名,该别名是公开的。
  • -keyalg:指定加密算法,本例中的采用通用的RAS加密算法

首先会提示输入keystore的密码,这里我输入的密码是sunchis。

然后提示输入个人信息,如姓名、组织单位和所在城市等,只要输入真实信息即可。

接着会提示输入信息是否正确,输入“y”表示信息正确。

最后要求输入<Tomcat>的主密码,这里设置与keystore相同的密码,因此只需根据提示按回车键即可。

点击放大图片
keytool生成证书的过程

以上命令将在操作系统的用户目录下生成名为“.keystore”的文件。我当前登录到操作系统的用户名是XuLiang,那么在Wnidows下,文件的位置为:

C:\Documents and Settings\XuLiang\.keystore

点击放大图片
证书存放的路径

在Linux下,该文件的位置为:home\XuLiang\.keystore

另外,如果希望生成的keystore文件存放在其他目录中,可以再keytool命令中加入-keystore参数,这个参数用来指定keystore文件的存放位置,例如以下命令将在D:\下生成名为“sunchis.keystore”的文件:

  1. keytool -genkeypair -alias "tomcat" -keyalg "RSA" –keystore "D:\sunchis.keystore" 

查看已生成的证书的命令为:

  1. keytool -list -keystore "C:\Documents and Settings\XuLiang\.keystore" 
点击放大图片
查看证书信息

二、配置SSL连接器

在Tomcat的server.xml文件中,已经提供了现成的配置SSL连接器的代码,只要把<Connector>元素的注释去掉即可:

  1. <!—  
  2. Define a SSL HTTP/1.1 Connector on port 8443  
  3. This connector uses the JSSE configuration, when using APR, the   
  4. connector should be using the OpenSSL style configuration  
  5. described in the APR documentation   
  6. --> 
  7.  
  8. <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
  9.           maxThreads="150" scheme="https" secure="true" 
  10.           clientAuth="false" sslProtocol="TLS"   
  11.           keystoreFile="C:\Documents and Settings\XuLiang\.keystore" 
  12.           keystorePass="SUNCHIS" 
  13.           ciphers="sunchis" 
  14. /> 

实际上,基于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应用。现在我们就来访问一下这个地址:

https://localhost:8443

当Tomcat收到这一HTTPS请求后,会向客户的浏览器发送服务器的安全证书,IE浏览器接受到证书后,将向客户显示安全警报窗口,如下图:

点击放大图片

在安全警报窗口中的第一行提示信息为:“您与该站点交换的信息不会被其他人查看或更改。但该站点的安全证书有问题。”这句话的意思是,一方面,该安 全证书非权威机构颁发,不能作为有效的验证对方身份的凭据。另一方面,假如与对方通信,通信数据会经过加密后在网络上传输,因此不会被他人监视或修改。

如果单击“【否】”按钮,就表示不信任该服务器出示的安全证书,因此浏览器会结束与Tomcat服务器的通信。

如果单击“【是】”按钮,表示信任Tomcat服务器出示的安全证书,浏览器将建立与Tomcat服务器的SSL会话,Tomcat服务器就会把客户请求的数据发送过来。

如果单击“【查看证书】”按钮,将出现证书窗口,如下图:

点击放大图片
证书窗口

从图中可以看到证书的“颁发者”和“颁发给”都是同一个人,这说明是自我签名的证书,非权威机构颁发。

点击放大图片
证书的详细信息

从证书的详细信息中可以看出,在证书中公布了证书发送者的身份和公钥。而私钥只有证书发送者拥有,不会向证书接受者公开。

分享到:
评论

相关推荐

    nginx、tomcat安装免费ssl安全证书配置

    本篇文章将详细介绍如何在Nginx和Tomcat上安装阿里云提供的免费SSL安全证书,以实现网站的HTTPS访问。 首先,我们需要了解SSL证书的基本概念。SSL证书由权威的证书颁发机构(CA)签发,它包含了网站的公钥、组织...

    Tomcat安装CA证书

    对于使用Java应用服务器如Apache Tomcat部署的服务来说,安装并配置正确的SSL证书是非常重要的一个环节。本文将详细介绍如何在Tomcat服务器中安装CA证书。 #### 二、准备工作 在进行安装之前,需要完成以下准备...

    Tomcat SSL 认证设置及证书自己生成

    标题"Tomcat SSL 认证设置及证书自己生成"涉及的核心知识点是Tomcat服务器的SSL安全套接层配置以及如何自签发CA(证书颁发机构)证书。SSL是Secure Socket Layer的缩写,是互联网上确保数据传输安全的一种协议。它...

    openSSL制作证书并在tomcat上配置

    openSSL证书生成及Tomcat配置 本文将详细介绍openSSL证书生成和在Tomcat上的配置。首先,我们将学习openSSL的基本概念和命令,然后逐步生成服务器端和客户端的证书文件,并介绍如何使用CA证书签名这些证书文件。...

    Tomcat配置HTTPS证书认证

    - 对于生产环境,通常需要从权威的证书颁发机构(CA)购买一个正式的SSL证书。 2. **创建Keystore**: - 使用`keytool`命令行工具(位于Java SDK的bin目录下)创建一个新的Keystore文件,存放私钥和公钥。 - ...

    tomcat 配置ssl 证书

    以下将详细讲解如何在Tomcat中配置SSL证书。 首先,了解SSL证书的基本概念。SSL证书包含了一个公钥和私钥对,用于在客户端(如浏览器)和服务器之间建立安全的加密连接。它通常由权威的证书颁发机构(CA)签发,以...

    TomcatSSL证书部署指南.....

    **Tomcat SSL证书部署指南** 在互联网通信中,安全是一个至关重要的因素,特别是对于处理敏感信息的应用服务器,如Apache Tomcat。SSL(Secure Sockets Layer)证书是确保数据传输安全的关键工具,它通过加密连接来...

    Tomcat SSL解决方案

    1. **SSL证书**:SSL配置的核心是SSL证书,它是由权威的证书颁发机构(CA)签署的数字证书,包含了网站的身份信息以及公钥。证书用于验证服务器身份并加密客户端与服务器之间的通信。 2. **Tomcat的Keystore**:...

    TomcatSSL证书部署指南

    对于Tomcat 8.5及之后版本,SSL证书的配置方式有所变更,更推荐用户使用Tomcat的配置文件(server.xml)中的元素来配置HTTPS连接。这部分通常涉及到对Connector元素进行修改,以支持新的加密算法和协议。 在SSL证书...

    Tomcat6配置使用SSL双向认证

    本文将深入探讨如何在Tomcat6中实现SSL双向认证,包括证书的生成、配置以及应用。 ### 一、CA证书生成 #### 1. 私钥生成 首先,通过OpenSSL工具生成一个私钥。在命令行中执行以下命令: ```bash C:\OpenSSL\bin&gt;...

    Tomcat6配置SSL

    **标题:** Tomcat6配置SSL **描述:** 在互联网中,数据传输的安全性至关重要,特别是在涉及用户敏感信息的Web应用中。SSL(Secure Sockets Layer)协议是实现这种安全性的基础,它通过加密通信和身份认证来保护网络...

    tomcat配置ssl教程

    4. **修改Tomcat配置**:打开Tomcat的服务器配置文件`server.xml`,在这个文件中,我们需要添加一个名为`&lt;Connector&gt;`的元素来配置SSL连接器。以下是基本配置示例: ```xml SSLEnabled="true" maxThreads="150...

    Tomcat 开启基于https的SSL配置

    Tomcat 开启基于 HTTPS 的 SSL 配置 ...Tomcat 作为一个流行的 ...配置 Tomcat 的 HTTPS 需要具备 SSL 证书,生成 JKS 格式证书,并在 Tomcat 中配置 HTTPS。这样,我们就可以使用 HTTPS 协议,保护用户的隐私和数据。

    tomcat6启用SSL_证书_tomcat6多ssl_Tomcat6;SSL;_

    5. **安装证书**:将CA签发的证书导入到你的密钥库中: ``` keytool -import -trustcacerts -file your_certificate.crt -alias tomcat -keystore keystore.jks ``` 6. **配置Tomcat**:在Tomcat的`conf/server...

    win2008搭建CA服务器tomcat5的ssl配置

    本文档分为两章,第一章讲述如何在Windows 2008服务器上搭建CA服务器,第二章讲述如何在Tomcat 5上申请CA证书并配置SSL加密传输。 第一章:搭建CA服务器 ### 1. 安装"IIS"和"证书服务" 在Windows 2008服务器上,...

    Tomcat5.5配置SSL精简版

    4. **安装签署后的证书**:收到CA签署的证书后,将其导入到Keystore中: ``` keytool -import -trustcacerts -file signed_certificate.crt -alias tomcat -keystore server_keystore ``` 5. **修改Tomcat配置**...

    openSSL生成证书以及在tomcat下的配置

    "openSSL生成证书以及在tomcat下的配置" openSSL是目前最流行的开源加密库之一,它提供了安全的数据传输和认证机制。在Web应用程序中,openSSL广泛应用于生成数字证书和私钥,从而确保数据的安全传输。今天,我们将...

Global site tag (gtag.js) - Google Analytics