Tomcat下配置HTTPS

来源:互联网 发布:德鲁迦雾化器口感数据 编辑:程序博客网 时间:2024/05/17 06:44

Tomcat下配置HTTPS

1、需要使用的程序:
我使用的JDK版本为JDK1.6,设置环境变量“JAVA_HOME=D:\Java\jdk1.6.0_23”。
使用的的Tomcat版本为Tomcat 5.5.34,配置环境变量:
"TOMCAT_HOME=C:\Tomcat\Tomcat 5.5.34"
或者(可选)
"CATALINA_BASE=C:\Tomcat\Tomcat 5.5.34"
"CATALINA_HOME=C:\Tomcat\Tomcat 5.5.34"

2、配置步骤:配置Tomcat下的HTTPS其实很简单,只需要完成两步工作就可以了;操作系统为Windows 7。
2-1、生成“服务器证书文件”
我把生成的“服务器证书文件”取名为tomcat.key(也可以取成abc.keystore,随自己喜欢就好)。简单起见,我把tomcat.key放在C盘根目录下面(我的配置环境为windows,linux类似)。
首先使用JDK自带的工具keytool生成一个“服务器证书”,取名为tomcat.key。
——cmd 显示内容—————————————————————————————–

C:\Windows\System32>%JAVA_HOME%/bin/keytool -genkey -alias tomcat -keyalg RSA -k
eystore C:\tomcat.key
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]: admin
您的组织单位名称是什么?
[Unknown]: megasoft
您的组织名称是什么?
[Unknown]: megasoft.cn
您所在的城市或区域名称是什么?
[Unknown]: zh
您所在的州或省份名称是什么?
[Unknown]: gd
该单位的两字母国家代码是什么
[Unknown]: cn
CN=admin, U=megasoft, O=megasoft.cn, L=zh, ST=gd, C=cn 正确吗?
[否]: y

输入<tomcat>的主密码
(如果和 keystore 密码相同,按回车):

C:\Windows\System32>
—-cmd内容显示结束—————————————————————————–

按照提示,输入密码。我输入的密码为123456(注意:此密码在配置server.xml时需要)。其他信息按照提示输入就可以,在输入tomcat主密码时,我直接键入回车,使其和keystore的密码保持一致。

此时,在C盘下面就生成了一个PCKS1.2格式的数字证书文件C:/tomcat.key。

2-2、配置server.xml文件

修改tomcat/conf目录下面的server.xml文件,添加一项:

<Connector protocol="org.apache.coyote.http11.Http11Protocol"
port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="C:/tomcat.key" keystorePass="123456"
clientAuth="false" sslProtocol="TLS"/>

需要注意一行“keystoreFile=”C:/tomcat.key” keystorePass=”123456″”,其中keystorefile是你生成的“服务器证书文件”,keystorePass是该服务证书文件的密码。

或者:(下面protocol方式有问题,原因待查)
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="server.keystore" 
               keystorePass="changeit"/>

2-3:强制https访问:
在tomcat\conf\web.xml中的</welcome-file-list>后面加上这样一段,完成所列步骤后,在浏览器中输入http的访问地址也会自动转换为https了。
<!-- 强制https访问 -->
<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>

3、在浏览器地址栏里输入 https://localhost:8443/ 或者http://127.0.0.1:8080/ 检验一下就OK了。

原创粉丝点击