`

tomcat设置http自动跳转为https访问(转)

 
阅读更多
原链接 http://blog.csdn.net/binyao02123202/article/details/6169747
 
一、生成服务器端证书文件
可以使用Windows系统或者Linux系统
(1)Windows环境
条件:已经安装JDK
步骤:
1、在运行里输入cmd进入命令窗口
2、进入JDK安装目录  如D:/Program Files/Java/jdk1.6.0/bin
3、执行命令   keytool -genkey -alias tomcat -keyalg RSA -keystore E:\tomcat.keystore -validity 36500
参数简要说明:“E:\tomcat.keystore”含义是将证书文件保存在E盘,证书文件名称是tomcat.keystore ;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天
4、在命令行填写必要的参数:
A、输入keystore密码:此处需要输入大于6个字符的字符串
B、“您的名字与姓氏是什么?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你将来要在浏览器中输入的访问地址
C、“你的组织单位名称是什么?”、“您的组织名称是什么?”、“您所在城市或区域名称是什么?”、“您所在的州或者省份名称是什么?”、“该单位的两字母国家代码是什么?”可以按照需要填写也可以不填写直接回车,在系统询问“正确吗?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息
D、输入<tomcat>的主密码,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以
5、完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件
(2)Linux环境
条件:安装了JDK
步骤:
1、进入JDK安装目录  如/root/Oracle/Middleware/jdk160_11/bin
2、执行命令     ./keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/tomcat.keystore -validity 36500
参数简要说明:“/etc/tomcat.keystore”含义是将证书文件保存在路径/usr/local/下,证书文件名称是tomcat.keystore ;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天
3、在命令行填写必要的参数:
A、Enter keystore password:此处需要输入大于6个字符的字符串
B、“What is your first and last name?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你将来要在浏览器中输入的访问地址
C、“What is the name of your organizational unit?”、“What is the name of your organization?”、“What is the name of your City or Locality?”、“What is the name of your State or Province?”、“What is the two-letter country code for this unit?”可以按照需要填写也可以不填写直接回车,在系统询问“correct?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息
D、Enter key password for <tomcat>,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以
4、 完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件
二、配置TOMCAT服务器
(1)    如果你是在Windows环境中生成证书文件,则需要将生成的证书tomcat.keystore拷贝到Tomcat将要引用的位置,假设tomcat的应用证书的路径是“E:/tomcat.keystore”,则需要将证书文件拷贝到E盘下;
(2)    配置Tomcat,打开tomcat配置文件,如:D:/apache-tomcat-6.0.29/conf/server.xml,修改如下,
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
修改参数=>
<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"/>
 -->
去掉注释且修改参数=>
<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"/>
注释:标识为淡蓝色的两个参数,分别是证书文件的位置和<tomcat>的主密码,在证书文件生成过程中做了设置
 
<!--
   <Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="8443" />
-->
修改参数=>
<Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="443" />
(3) 打开D:/apache-tomcat-6.0.29/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> 
三、上述配置完成后,重启TOMCAT后即可以使用SSL。IE地址栏中可以直接输入地址 “http://” 会自动跳转成为 “https://” 
四、注意事项:
(1)生成证书的时间,如果IE客户端所在机器的时间早于证书生效时间,或者晚于有效时间,IE会提示“该安全证书已到期或还未生效”
(2)如果IE提示“安全证书上的名称无效或者与站点名称不匹配”,则是由生成证书时填写的服务器所在主机的域名“您的名字与姓氏是什么?”/“What is your first and last name?”不正确引起的
五、遗留问题:
(1)如果AC主机不能通过域名查找,必须使用IP,但是这个IP只有在配置后才能确定,这样证书就必须在AC确定IP地址后才能生成
(2)证书文件只能绑定一个IP地址,假设有10.1.25.250 和 192.168.1.250 两个IP地址,在证书生成文件时,如使用了10.1.25.250,通过IE就只能使用10.1.25.250 来访问AC-WEB,192.168.1.250是无法访问AC-WEB的。
分享到:
评论

相关推荐

    详解NGINX访问https跳转到http的解决方法

    假设用户通过HTTPS(安全的HTTP)访问网站`https://www.jb51.net/aaa.html`,请求被NGINX服务器接收,然后转发到内部的HTTP服务,如Tomcat或PHP应用服务器。当内部服务进行重定向时,它可能返回一个HTTP的Location头...

    RuoYi:开源工程https

    4. `pom.xml` - 虽然项目已转为Gradle,但可能遗留的Maven配置文件。 5. `README.md` - 项目介绍和指南。 6. `.gitignore` - 用于指定Git忽略的文件或目录。 7. `.travis.yml` 或其他CI/CD配置文件 - 自动化构建和...

    java程序转化成web 服务

    从Apache官方站点下载Axis安装包,解压缩后将其中的Axis包复制到Tomcat的webapps目录下,设置相应的环境变量。 #### 3. **启动Tomcat并检查安装** 启动Tomcat服务器,通过浏览器访问`http://localhost:8080/Axis`...

    GeoServer地图开发解决方案

    它支持多种数据源,如PostGIS、Shapefile、Oracle Spatial等,并能将这些数据转换为网络可访问的地图服务。GeoServer的核心优势在于其强大的地图数据管理和分发能力,使得地理信息的共享变得异常简便。 **环境搭建...

    论天津城市建设学院网站建设技术安全规范标准.doc

    - Web服务软件方面,IIS适合ASP和ASP.NET技术,Apache+Tomcat适合JSP技术,两者都需要禁用不必要的服务扩展,启用日志功能,并限制错误信息的直接显示。 7. **栏目设计**:栏目应根据用户需求划分,避免空栏目和...

    CRM-master.zip

    其最终目标是吸引新客户、保留老客户以及将已有客户转为忠实客户,增加市场份额。 技术路线: SPA:Single Page Application(基于 Ajax 实现单页面应用) Maven:项目构建工具 jQuery/Bootstrap:前端展现及交互...

    JSP实用技巧集合,jsp编程的一些小技巧总结

    9. 整型转字符? 10. 显示数据库的记录,点击哪个标题栏,就按照哪个标题排序 11. 制作两个按钮 12. 用什么sql语句将数据库中的一条记录,复制为两条? 13. 有兩個按鈕A,B,其中A按下去,A就不可以再按,另外B按下去,A可以...

    《58同城架构演进与优化二三事》沈剑

    ### 58同城架构演进与... - 加强监控和自动化运维能力,确保系统健康稳定运行。 通过这些不断演进的架构策略和技术选择,58同城成功地应对了从小流量站点到大流量站点的不同阶段的挑战,实现了业务的持续增长和发展。

    基于聊天机器人的智能导购系统.pdf

    服务器端基于 Java 平台开发,使用 MySQL5.1.73 版本作为数据库服务器,应用服务器采用 Tomcat8.5.16。由于 Java 的跨平台特性,服务器端系统可以部署在 Windows 操作系统上,也可以部署在 Linux 操作系统上。 ...

    spring mvc demo

    Spring MVC 的设计目标是简化开发,将业务逻辑、数据访问以及用户界面分离,使开发者能够更加专注于每一部分的功能实现。 【Spring 3.2 版本的特点】 Spring 3.2 是 Spring 框架的一个里程碑版本,引入了许多改进...

    jsp编程技巧集锦

    数字转中文 128 自动计算金额 129 JSP页面打印中使用WebBrowser控件 130 不刷新页面添加新的类别 131 鼠标滚动缩放图片 132 根据输入的表名生成输入数据表格 133 JSP表格输出到Excel 134.JSP...

    IDEASSM框架实战CRUDSSM整合配置MyBatis逆向工程.docx

    -- 使用REST风格的请求将页面普通的POST请求转为指定的DELETE和PUT请求 --&gt; &lt;filter-name&gt;HiddenHttpMethodFilter &lt;filter-class&gt;org.springframework.web.filter.HiddenHttpMethodFilter &lt;filter-name&gt;...

    在线商城后端支持下单退货

    它内置了Tomcat服务器,支持自动配置,并提供了对Spring MVC的集成,使得开发Web应用更加便捷。 3. **数据库操作**:订单信息、商品信息、用户信息等都需要存储在数据库中。Java中常使用的数据库连接池有HikariCP或...

    JAVA基础面试题全

    - **获取前几位**: 要获取整型或浮点型的前几位数字,可以使用 `Math.floorDiv()` 或者转为字符串后截取。 #### 1.4 获取当前时间戳 - **获取时间戳**: 在Java中,可以通过 `System.currentTimeMillis()` 方法来...

Global site tag (gtag.js) - Google Analytics