博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tomcat配置https协议、以及http协议自动REDIRECT到HTTPS【没有试验,内含设置强制https访问】
阅读量:2352 次
发布时间:2019-05-10

本文共 2258 字,大约阅读时间需要 7 分钟。

文章来源: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

你可能感兴趣的文章
不翻qiang搞定Android Studio Google库加载不下来的问题 打包生成apk android studio 3.2打灰机程序源码带详细注释
查看>>
仿照利用android系统源码资源文件,修改SeekBar颜色 前景与背景
查看>>
printf及String.format格式化测试
查看>>
android java 经典字符模式通信接收处理,标准modbus通讯协议接收处理提取数据
查看>>
10055自动进刀水钻机android蓝牙2.0SSP项目源码结构使用说明【版本更新、自动连接、控件批量处理、接收解析】
查看>>
Android Studio导入项目时常见问题的解决汇总,Eclipse项目转为Android Studio项目步骤报错万能解决方法汇总
查看>>
Widget.Material.Light.ProgressBar.Horizontal" (10302b8) is not a Drawable (color or path)错误解决
查看>>
解决java中文乱码,编码识别测试,汇总
查看>>
android定时,延时,倒计时源码
查看>>
Eclipse导入项目时常见问题解决汇总, Android Studio转为Eclipse项目问题汇总
查看>>
com.android.dex.DexIndexOverflowException
查看>>
AndroidStudio一个工程内查看多个项目的实现
查看>>
Gradle Build速度加快终极方法
查看>>
Could not find class 'com.umeng.analytics.d' 解决的方案分享
查看>>
谷歌游览器模拟手机请求网站测试
查看>>
在Fragment中OnActivityResult方法中接收Activity中返回的值
查看>>
外包采用Gradle生成多套app打包
查看>>
iOS和Android的app界面设计规范
查看>>
Android 代码混淆异常
查看>>
Android drawable微技巧,你所不知道的drawable的那些细节
查看>>