当前位置: 代码迷 >> Web前端 >> tomcat-https
  详细解决方案

tomcat-https

热度:1048   发布时间:2012-08-07 14:54:47.0
tomcat--https

http://flysky7931.iteye.com/blog/305074

?

前几天客户提出要强制使用HTTPS方式访问Tomcat中的相关项目,于是研究了下,现将具体的步骤写下:?

??? 主要分2步:让tomcat能使用https--->强制使用https访问?

1.让tomcat能使用https?

? A.在运行命令JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg??
??? RSA? -keystore???? C:\Tomcat\GMAE3.0Tomcat\tomcat.keystore?
??? 这样就生成了证书,将证书放到合适的地方(任意地方都可以)?

? B.打开tomcat目录下的server.xml文件并找到关于ssl的相关段?
???

Java代码??收藏代码
  1. <!--?Define?a?SSL?HTTP/1.1?Connector?on?port?8443??
  2. This?connector?uses?the?JSSE?configuration,?when?using?APR,?the???
  3. connector?should?be?using?the?OpenSSL?style?configuration??
  4. described?in?the?APR?documentation?-->??
  5. <!--<Connector?port="8443"?protocol="HTTP/1.1"?SSLEnabled="true"??
  6. maxThreads="150"?scheme="https"?secure="true"??
  7. clientAuth="false"??sslProtocol="TLS"?/>-->??


? C.去掉注释,添keystoreFile="C:\Tomcat\GMAE3.0Tomcat\tomcat.keystore"?
? keystorePass="tomcat"的属性?
? 改动完成后配置为:?
?
Java代码??收藏代码
  1. <Connector?port="8443"?protocol="HTTP/1.1"?SSLEnabled="true"???maxThreads="150"?scheme="https"?secure="true"?clientAuth="false"?keystoreFile="C:\Tomcat\GMAE3.0Tomcat\tomcat.keystore"?keystorePass="tomcat"?sslProtocol="TLS"?/>??


? D.然后重启tomcat就能使用HTTPS访问?

2.强制https访问?

? 在tomcat\conf\web.xml中的</welcome-file-list>后面加上这样一段:?
Java代码??收藏代码
  1. <login-config>??
  2. ????<!--?Authorization?setting?for?SSL?-->??
  3. ????<auth-method>CLIENT-CERT</auth-method>??
  4. ????<realm-name>Client?Cert?Users-only?Area</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>??



完成以上步骤后,在浏览器中输入http的访问地址也会自动转换为https了
  相关解决方案