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 -v
    -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. <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

  8. maxThreads="150" scheme="https" secure="true"

  9. clientAuth="false" sslProtocol="TLS"

  10. keystoreFile="C:\Documents and Settings\XuLiang\.keystore"

  11. keystorePass="SUNCHIS"

  12. ciphers="sunchis"

  13. />

实际上,基于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

指定套接字可用的用于加密的密码清单,多个密码间以逗号(,)分隔。如果此项没有设定,在默认情况下,套接字可以使用任意一个可用的密码。

三、访问支持SSLWeb站点

由于SSL技术已建立到绝大多数浏览器和Web服务器程序中,因此,仅需在Web服务器端安装服务器证书就可以激活SSL功能了。

如果上述的第一步和第二步已经配置完毕,那么就可以重启Tomcat服务器了,然后从IE浏览器中以HTTPS方式来访问在Tomcat服务器上的任何一个Web应用。现在我们就来访问一下这个地址:

https://localhost:8443

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

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

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

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

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

证书窗口

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

证书的详细信息

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

Tomcat SSL配置及Tomcat CA证书安装

时间: 2024-10-05 20:47:38

Tomcat SSL配置及Tomcat CA证书安装的相关文章

Tomcat SSL配置 Connector attribute SSLCertificateFile must be defined when using SSL with APR解决

原文地址:http://blog.csdn.net/kissliux/article/details/17392003 Tomcat 6版本配置SSL过程有两步: 1.用JDK自带的keytool.exe来生成私有密钥和自签发的证书,如下: keytool -genkey -keyalg RSA -alias tomcat 按提示输入相关内容后,这条命令将在默认密钥库文件里新增一个别名为tomcat的私有密钥项及其自签发的证书.默认密钥库文件为: %USERPROFILE%\.keystore

keytool生成证书与Tomcat SSL配置

转自:http://tomhat.iteye.com/blog/2087673 一.Keytool介绍 Keytool是一个Java数据证书的管理工具.Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据: 1.   密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密) 2.   可信任的证书实体(trusted certificate entries)——只包含

SSL 通信原理及Tomcat SSL 配置

SSL 通信原理及Tomcat SSL 双向配置 目录1 参考资料 .................................................................................................................................. 12 SSL(Server Socket Layer)简介 .......................................................

spring-boot+nginx+tomcat+ssl配置笔记

如果你的tomcat应用需要采用ssl来加强安全性,一种做法是把tomcat配置为支持ssl,另一种做法是用nginx反向代理tomcat,然后把nginx配置为https访问,并且nginx与tomcat之间配置为普通的http协议即可.下面说的是后一种方法,同时假定我们基于spring-boot来开发应用. 一.配置nginx: server { listen 80; listen 443 ssl; server_name localhost; ssl_certificate server.

TOMCAT SSL 配置

最近配置tomcat证书遇到这么一个问题,简单的分享下: 报错信息如下: 06-Dec-2016 11:26:35.079 SEVERE [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-443]]  org.apache.catalina.LifecycleException: Failed to initialize c

JDK+MyEclipse+Tomcat的配置(修改Tomcat 6.x的端口)

修改tomcat的端口,在conf目录里的server.xml文件 例如想将端口修改为8080则将port的值修改为8081,其余值不变 通过Tomcat服务器访问 想通过浏览器访问这个页面,需要在Tomcat中配置相关路径: 找到Tomcat的conf目录,有一个叫server.xml的文件. 用编辑器打开这个文件,拉到最后,在Host标签结束前加上这么一行: <Context path="/HelloWeb" docBase="E:\MDD\MyEclipseWor

Nginx+Tomcat+SSL配置(包括https跳转及腾讯免费SSL申请流程)

网上有非常多的nginx+ssl相关配置的文档,但大都是很简单的写一下如何改配置文件,并没有完整的配置流程,我自己找了很久才找到免费的ssl证书,然后直到网站可以正常运行经过了很多测试,写这篇的目的也是为了帮助阅读者能少走些弯路,还有就是不得不提醒,免费证书只有一年的使用期,而且安全度肯定不如收费证书,这点上希望大家能有所权衡! 一.免费SSL证书申请 网址:https://console.qcloud.com/ssl/apply 1. 2. 3.在你申请的二级域名上添加CNAME记录,添加完成

SSL 通信原理及Tomcat SSL 双向配置

目录1 参考资料 .................................................................................................................................. 12 SSL(Server Socket Layer)简介 ................................................................................

用tomcat配置https自签名证书,解决 ios7.1以上系统, 苹果inHouse发布

用tomcat配置https自签名证书,解决 ios7.1以上系统苹果inHouse发布不能下载安装的问题教程,话说,我其实最讨厌配置某某环境了,因为某一个小环节一旦出错,你的所有工作往往会功亏一篑,而且蛋疼到不行也不知道哪里出了错,我发布的的这个福利,虽然网上也有很多,但是都很零碎,有的资料还有错误,有的资料又不全,你说这样的情况,怎么不让我们搞的头疼,不过在此感谢哪些热心提供资料的人,现在既然我把它弄好了,就为大家做做贡献吧. 我目前给大家展示的是windowserver2003环境下搭建的