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工具创建证书的命令为:
- 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”的文件:
- keytool -genkeypair -alias "tomcat" -keyalg "RSA" –keystore "D:\sunchis.keystore"
查看已生成的证书的命令为:
- keytool -v -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服务器就会把客户请求的数据发送过来。
如果单击“【查看证书】”按钮,将出现证书窗口,如下图:
证书窗口
从图中可以看到证书的“颁发者”和“颁发给”都是同一个人,这说明是自我签名的证书,非权威机构颁发。
证书的详细信息
从证书的详细信息中可以看出,在证书中公布了证书发送者的身份和公钥。而私钥只有证书发送者拥有,不会向证书接受者公开。
Tomcat SSL配置及Tomcat CA证书安装的更多相关文章
- Burp Suite 抓取http、https流量配置+CA证书安装
HTTPS协议是为了数据传输安全的需要,在HTTP原有的基础上,加入了安全套接字层SSL协议,通过CA证书来验证服务器的身份,并对通信消息进行加密.基于HTTPS协议这些特性,我们在使用Burp Pr ...
- keytool生成证书与Tomcat SSL配置
转自:http://tomhat.iteye.com/blog/2087673 一.Keytool介绍 Keytool是一个Java数据证书的管理工具.Keytool将密钥(key)和证书(certi ...
- SSL 通信原理及Tomcat SSL 配置
SSL 通信原理及Tomcat SSL 双向配置 目录1 参考资料 .................................................................. ...
- CentOS 6.5 nginx+tomcat+ssl配置
本文档用于指导在CentOS 6.5下使用nginx反向代理tomcat,并在nginx端支持ssl. 安装nginx.参见CentOS 6 nginx安装. SSL证书申请.参见腾讯SSL证书申请和 ...
- tomcat https jks 沃通免费证书安装 解决方案
网上百度了一天什么没百度到,最后谷歌到了一篇文章启发之下解决之. 代理谷歌网站推荐一个,可以直接上谷歌: https://www.yundou.info ----------------------- ...
- spring-boot+nginx+tomcat+ssl配置笔记
如果你的tomcat应用需要采用ssl来加强安全性,一种做法是把tomcat配置为支持ssl,另一种做法是用nginx反向代理tomcat,然后把nginx配置为https访问,并且nginx与tom ...
- http的CA证书安装(也就是https)
近几年随着安全意识的提高,https流行起来,很多小伙伴不太了解https是什么,其实http和https并没有区别,简单的来说,https就是将http通信进行了加密和解密的一个过程.加上谷歌浏览器 ...
- JDK+MyEclipse+Tomcat的配置(修改Tomcat 6.x的端口)
修改tomcat的端口,在conf目录里的server.xml文件 例如想将端口修改为8080则将port的值修改为8081,其余值不变 通过Tomcat服务器访问 想通过浏览器访问这个页面,需要在T ...
- 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.e ...
随机推荐
- [转]Spring事务<tx:annotation-driven/>
在使用SpringMVC的时候,配置文件中我们经常看到 annotation-driven 这样的注解,其含义就是支持注解,一般根据前缀 tx.mvc 等也能很直白的理解出来分别的作用.<tx: ...
- let、var、const区别(表格比较)
let.var.const区别(表格比较): 区别项 let var const 作用域 块级作用域 全局作用域或函数作用域 块级作用域 是否有变量提升 无 有 无 是否可重复声明 不可 可以 不可 ...
- linux 命令 随笔
1 查找命令 which (寻找执行档) :这个指令是根据PATH这个环境变量所规范的路径,去搜寻执行档的档名,所以,重点是找出执行档而已,which 后面接的是完整档名,也就说执行文件 wherei ...
- devExpress Gridview添加按钮或链接
1.进入view设计 2.增加列 3.修改Repository中相关内容
- 【Spring-AOP-学习笔记-5】@AfterReturning增强处理简单示例
项目结构 业务代码 @Component("hello") public class HelloImpl implements Hello { // 定义一个简单方法,模拟 ...
- Python网络爬虫-requests模块(II)
有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的,例如: #!/usr/bin/env ...
- Oracle内存详解之二 Library cache 库缓冲-转载
Library cache是Shared pool的一部分,它几乎是Oracle内存结构中最复杂的一部分,主要存放shared curosr(SQL)和PLSQL对象(function,procedu ...
- logger常用方法
#!/usr/bin/env python # encoding: utf-8 # Date: 2018/5/25 import loggingfrom logging import handler ...
- python 之路06day
一 字符编码 1 字符编码的定义: 计算机要想工作必须通电,即用‘电’驱使计算机干活,也就是说‘电’的特性决定了计算机的特性.电的特性即高低电平(人类从逻辑上将二进制数1对应高电平,二进制数0 ...
- 【求助】win 2008 R2 远程桌面多用户,破解最大连接数2的限制
[求助]win 2008 R2 远程桌面多用户,破解最大连接数2的限制. 1. 本地组策略设置的是“允许的RD最大连接数 5”. 2. 远程桌面仍然只能有两个连接在线. 3. 后来发现是下面这个设置限 ...