设为首页 收藏本站
查看: 412|回复: 0

[经验分享] Tomcat SSL配置及Tomcat CA证书安装

[复制链接]

尚未签到

发表于 2017-1-19 11:30:17 | 显示全部楼层 |阅读模式
Tomcat既可以作为独立的Servlet容器,也可以作为其他HTTP服务器附加的Servlet容器。如果Tomcat在非独立模式下工作,通常不必配置SSL,由它从属的HTTP服务器来实现和客户的SSL通信。Tomcat和……




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相同的密码,因此只需根据提示按回车键即可。

http://www.sunchis.com/uploads/allimg/000000/1_100314231444_1.png


keytool生成证书的过程


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

C:\Documents and Settings\XuLiang\.keystore

http://www.sunchis.com/uploads/allimg/000000/1_100314231752_1.png


证书存放的路径


在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:\DocumentsandSettings\XuLiang\.keystore"

http://www.sunchis.com/uploads/allimg/000000/1_100314232031_1.png


查看证书信息


二、配置SSL连接器



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


  • <!—
  • DefineaSSLHTTP/1.1Connectoronport8443
  • ThisconnectorusestheJSSEconfiguration,whenusingAPR,the
  • connectorshouldbeusingtheOpenSSLstyleconfiguration
  • describedintheAPRdocumentation

  • -->


  • <Connectorport="8443"protocol="HTTP/1.1"SSLEnabled="true"

  • maxThreads="150"scheme="https"secure="true"

  • clientAuth="false"sslProtocol="TLS"

  • keystoreFile="C:\DocumentsandSettings\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应用。现在我们就来访问一下这个地址:

https://localhost:8443

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

http://www.sunchis.com/uploads/allimg/000000/1_100314233323_1.png



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

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

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

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

http://www.sunchis.com/uploads/allimg/000000/1_100314233438_1.png


证书窗口


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

http://www.sunchis.com/uploads/allimg/000000/1_100314233528_1.png


证书的详细信息


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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-330719-1-1.html 上篇帖子: IIS6.0+Tomcat整合 下篇帖子: Tomcat的七大特性
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表