Apache服务器配置访问http自动跳转https

https与http的区别有以下:

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。

二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

SSL协议:

SSL安全套接层协议(Secure Socket Layer),它位于TCP/IP协议与各种应用层协议之间,是一种国际标准的加密及身份认证通信协议,为TCP提供一个可靠的端到端的安全服务,为两个通讯个体之间提供保密性和完整性(身份鉴别)。SSL协议可分为两层:SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

以下是重点配置:

(1)需要有.keystore证书文件,这个是要用钱买的,或者用jdk自带的keytool创建个私人证书,只是这个证书在公网上不承认。

1)cmd进入%JAVA_HOME%/bin目录,执行命令keytool -genkey -alias tomcat -keyalg RSA -keystoreF:\tomcat.keystore -validity 36500

参数简要说明:“F:\tomcat.keystore”含义是将证书文件保存在F盘,证书文件名称是tomcat.keystore ;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天

2)在命令行填写必要的参数:

A、输入keystore密码:此处需要输入大于6个字符的字符串

B、“您的名字与姓氏是什么?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你将来要在浏览器中输入的访问地址

C、“你的组织单位名称是什么?”、“您的组织名称是什么?”、“您所在城市或区域名称是什么?”、“您所在的州或者省份名称是什么?”、“该单位的两字母国 家代码是什么?”可以按照需要填写也可以不填写直接回车,在系统询问“正确吗?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息

D、输入<tomcat>的主密码,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以,之后找到设置生成的文件,将它复制粘贴到服务器上/etc/ tomcat.keystore

(2)配置tomcat服务器,首先做的是配置文件的备份,没有备份的情况下还是少动配置文件,一旦改错了服务器奔溃就GG。需要改动server.xml及web.xml文件,所以先备份下再进行修改。

(3)打开$CATALINA_HOME/conf/server.xml,修改如下,

<Connectorport="8080" protocol="HTTP/1.1" connectionTimeout="20000"  redirectPort="8443" />

修改参数 =>

<Connector port="80"protocol="HTTP/1.1" connectionTimeout="20000"  redirectPort="443" />
<!--
<Connectorport="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="/etc/tomcat.keystore" keystorePass="www.gbcom.com.cn"/>

注释:keystoreFile和keystorePass的两个参数,分别是证书文件的位置和<tomcat>的主密码,在证书文件生成过程中做了设置

<!--
  <Connector port="8009" enableLookups="false"protocol="AJP/1.3" redirectPort="8443" />
-->

修改参数=>

<Connectorport="8009" enableLookups="false"protocol="AJP/1.3" redirectPort="443" />

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

<login-config>
   <!-- Authorization setting forSSL -->
   <auth-method>CLIENT-CERT</auth-method>
   <realm-name>ClientCert 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>

(5)然后重启Apache服务,或者直接reboot服务器,URL地址栏可以输入http,它会自动跳转到https

(6)注意事项:

1)生成证书的时间,如果IE客户端所在机器的时间早于证书生效时间,或者晚于有效时间,IE会提示“该安全证书已到期或还未生效”。

2)如果IE提示“安全证书上的名称无效或者与站点名称不匹配”,则是由生成证书时填写的服务器所在主机的域名“您的名字与姓氏是什么?”/“What is your first and last name?”不正确引起的。

3)有的公司是有防火墙做限制,所以需要咨询下运维人员,在公网访问时,有没有需要开通防火墙访问443端口的访问权限,要不然会无法访问。

4)在公网上,如果公司将网站放在cdn上,可能存在cdn缓存,需要特殊处理。

以上有我参照他人文章编写,以及我个人总结出来的问题,盲人摸象般探索,站在他人的肩膀上完成配置,感谢原文章作者。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值