一. 环境
- 下载 tomcat7
- 安装好 jdk
二. 正式配置
1. 使用jdk生成证书
打开终端执行命令:<JAVA_HOME>/bin/keytool.exe -genkey -alias tomcat -keyalg RSA -keystore E:\tomcat.keystore -validity 36500
命令说明:
E:\tomcat.keystore : 指证书生成的位置
validity 36500: 指证书的有效期100年(默认90天)[单位:天]
在命令行填写必要的参数:
A、输入keystore密码:此处需要输入大于6个字符的字符串
B、“您的名字与姓氏是什么?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你将来要在浏览器中输入的访问地址
C、“你的组织单位名称是什么?”、“您的组织名称是什么?”、“您所在城市或区域名称是什么?”、“您所在的州或者省份名称是什么?”、“该单位的两字母国家代码是什么?”可以按照需要填写也可以不填写直接回车,在系统询问“正确吗?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息
D、输入<tomcat>的主密码,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以
2. 将证书配置到jdk中,并启用https
配置Tomcat, 打开tomcat配置文件, 如:D:/apache-tomcat-6.0.29/conf/server.xml,修改如下(共需要修改3处地方)
原始配置:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改之后的配置:(这里的redirectPort与后台的相关端口要对应)
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
原始配置:
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"/>
-->
去掉注释修改为:
<!-- keystoreFile:证书文件存放位置 -->
<!-- keystorePass:生成证书文件时,输入的tomcat密码 -->
<!--这个port的值应该对应上一步配置的redirectPort的值-->
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="E:/tomcat.keystore" keystorePass="123456789"/>
原始配置:
<!--
<Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="8443" />
-->
<!-- 这个redirectPort的值,对应的是上一步配置的port的值 -->
去掉注释修改为:
<Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="443" />
3. 强制tomcat使用https方式访问
打开<TOMCAT_HOME>/conf/web.xml文件,在文件末尾添加如下内容:
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
最后
上述配置完成后,重启TOMCAT后即可以使用SSL。IE地址栏中可以直接输入地址 “http://” 会自动跳转成为 “https://”
通过IE访问:
Paste_Image.png Paste_Image.png** 通过chrome访问:**
Paste_Image.png Paste_Image.pngp.s.
为什么会有证书的错误提示?
自己创建的证书,是没有经过证书机构认证的,在实际的应用中需要向证书机构购买证书
** 我想通过端口号访问怎么办? **
上例中配置的443端口,可以通过443访问,不过即使加了443,还是会转为80端口,如果想强制使用某端口,那就不要配置443(443在配置似乎中是个例外),比如配置为:8443,那么就必须使用8443访问了,最终url也不会跳回80端口,配置为8889,那么就必须使用8889访问了,最终url也不会跳回80端口。
这里一定要与http端口的配置区别开来哈,因为http端口只要配置一个地方就ok了
网友评论