Tomcat配置https及访问http自动跳转至https

来源:互联网 发布:图片分析软件 编辑:程序博客网 时间:2024/05/20 14:22
https介绍:
 
  HTTPS(全称:Hypertext Transfer Protocol over Secure SocketLayer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URIscheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTPS,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面

与http区别:

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

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


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

SSL协议:

  SSL安全套接层协议(Secure Socket Layer)

  为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。目前一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之IE.或Netscape浏览器即可支持SSL。

  当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。

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

如何配置:
1、生成服务器端证书文件
可以使用Windows系统或者Linux系统
(1)   Windows环境
条件:已经安装JDK
步骤:
进入%JAVA_HOME%/bin目录
执行命令
keytool -genkey -alias tomcat -keyalg RSA -keystore E:\java\apache-tomcat-7.0.57\tomcat.keystore -validity 36500
参数简要说明:“E:\java\apache-tomcat-7.0.57\tomcat.keystore”含义是将证书文件保存在E:\java\apache-tomcat-7.0.57这个目录,证书文件名称是tomcat.keystore ;“-validity36500”含义是证书有效期,36500表示100年,默认值是90天
在命令行填写必要的参数:
A、输入keystore密码:此处需要输入大于6个字符的字符串
B、“您的名字与姓氏是什么?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:127.0.0.1],就是你将来要在浏览器中输入的访问地址
C、“你的组织单位名称是什么?”、“您的组织名称是什么?”、“您所在城市或区域名称是什么?”、“您所在的州或者省份名称是什么?”、“该单位的两字母国家代码是什么?”可以按照需要填写也可以不填写直接回车,在系统询问“正确吗?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息
D、输入<tomcat>的主密码,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以
完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件
(2)   Linux环境
条件:安装了JDK
步骤:
进入$JAVA_HOME/bin目录
执行命令
./keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/ac/web/tomcat.keystore -validity36500
参数简要说明:“/etc/tomcat.keystore”含义是将证书文件保存在路径/usr/local/ac/web/下,证书文件名称是tomcat.keystore ;“-validity36500”含义是证书有效期,36500表示100年,默认值是90天
在命令行填写必要的参数:
部分参数说明:
A、Enter keystorepassword:此处需要输入大于6个字符的字符串
B、“What is your firstand last name?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com或者10.1.25.251],就是你将来要在浏览器中输入的访问地址
C、“What is the nameof your organizational unit?”、“What is the nameof your organization?”、“What is the nameof your City or Locality?”、“What is the nameof your State or Province?”、“What is thetwo-letter country code for this unit?”可以按照需要填写也可以不填写直接回车,在系统询问“correct?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息
D、Enter key passwordfor <tomcat>,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以
完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件
2、配置TOMCAT服务器
(1)   如果你是在Windows环境中生成证书文件,则需要将生成的证书tomcat.keystore拷贝到Tomcat将要引用的位置,假设tomcat的应用证书的路径是“/etc/tomcat.keystore”,则需要将证书文件拷贝到“etc/”下;如果是在Linux环境按照上述介绍的步骤生成证书文件的话,此时证书文件已经在“etc/”下。
(2)   配置Tomcat,打开$CATALINA_HOME/conf/server.xml,修改如下,

<Connector port="8443"protocol="HTTP/1.1" SSLEnabled="true"
              maxThreads="150" scheme="https" secure="true"
              clientAuth="false" sslProtocol="TLS" keystoreFile="/etc/tomcat.keystore"keystorePass="123456"/>
注释:标识为淡蓝色的两个参数,分别是证书文件的位置和<tomcat>的主密码,在证书文件生成过程中做了设置

 (3) 打开$CATALINA_HOME/conf/web.xml,在该文件末尾增加:
3.强制https访问

在tomcat\conf\web.xml中的最后加上这样一段Java代码:
    1.<login-config>
    2.<!-- Authorization setting for SSL-->
    3.<auth-method>CLIENT-CERT</auth-method>
    4.<realm-name>Client Cert Users-onlyArea</realm-name>
    5.</login-config>
    6.<security-constraint>
    7.<!-- Authorization setting for SSL-->
    8.<web-resource-collection >
    9.<web-resource-name>SSL</web-resource-name>
    10.<url-pattern>/*</url-pattern>
    11.</web-resource-collection>
    12.<user-data-constraint>
    13.<transport-guarantee>CONFIDENTIAL</transport-guarantee>
    14.</user-data-constraint>
    15.</security-constraint>

4、上述配置完成后,重启TOMCAT后即可以使用SSL。IE地址栏中可以直接输入地址不必输入“http://” 或者 “https://” ;也可以输入 “http:// ” 会跳转成为 “https://”来登录
       访问之前地址栏的信息:
       访问之后地址栏的信息:
5、注意事项:如果IE提示“安全证书上的名称无效或者与站点名称不匹配”,则是由生成证书时填写的服务器所在主机的域名“您的名字与姓氏是什么?”/“What is your firstand last name?”不正确引起的
0 0