您的位置:首页 > 理论基础 > 计算机网络

Tomcat配置https协议、以及http协议自动REDIRECT到HTTPS【没有试验,内含设置强制https访问】

2015-07-18 16:24 796 查看
文章来源:http://blog.csdn.net/chow__zh/article/details/8843594

在命令提示符窗口,进入Tomcat目录,执行以下命令:

keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3600

通过以上步骤生成server.keystore证书文件

将servlet.xml一下的的注释打开

<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->

<Connector protocol="org.apache.coyote.http11.Http11Protocol"

port="8443" maxHttpHeaderSize="8192"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" disableUploadTimeout="true"

acceptCount="100" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS"

keystoreFile="server.keystore"

keystorePass="changeit"/>

到这一步访问https://ip:8443/

一般Tomcat默认的SSL端口号是8443,但是对于SSL标准端口号是443,这样在访问网页的时候,直接使用https而不需要输入端口号就可以访问,如https://ip/

想要修改端口号,需要修改Tomcat的server.xml文件:

1.non-SSL HTTP/1.1 Connector定义的地方,一般如下:

<Connector port="80" maxHttpHeaderSize="8192"

maxThreads="500" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true" />

将其中的redirectPort端口号改为:443

2.SSL HTTP/1.1 Connector定义的地方,修改端口号为:443,如下:

<Connector

port="443" maxHttpHeaderSize="8192"

maxThreads="150" minSpareThreads="25"

maxSpareThreads="75"

enableLookups="false"

disableUploadTimeout="true"

acceptCount="100" scheme="https"

secure="true"

clientAuth="false" sslProtocol="TLS"

keystoreFile="conf/tomcat.keystore"

keystorePass="123456" />

3.AJP 1.3 Connector定义的地方,修改redirectPort为443,如下:

<Connector port="8009"

enableLookups="false" redirectPort="443" protocol="AJP/1.3" />

重新启动Tomcat就可以了。到这一步可以形成访问方式 https://ip/
4、强制https访问

在tomcat\conf\web.xml中的</welcome-file-list>后面加上这样一段:

<login-config>

<!-- Authorization setting for SSL -->

<auth-method>CLIENT-CERT</auth-method>

<realm-name>Client Cert Users-only Area</realm-name>

</login-config>

<security-constraint>

<!-- Authorization setting for SSL -->

<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>

注意:(如果对方使用的机器端口被占用)

需要切换端口来转换数据:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: