zoukankan      html  css  js  c++  java
  • tomcat开启SSL8443端口的方法

    参考文献:

    http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html

    http://blog.sina.com.cn/s/blog_682b5aa1010113uu.html(中文,比较实用)

    https://help.ubuntu.com/community/TomcatSSL

    http://blog.csdn.net/fjssharpsword/article/details/6851969(服务器和客户端证书)

    背景

    本文以ubuntu环境为例进行说明,具体环境如下

    OS:ubuntu-server_12.04

    TOMCAT_HOME:/usr/local/tomcat7,安装方法参考:windows和linux 下将tomcat注册为服务

    JAVA_HOME:/usr/lib/jvm/jdk1.7.0_45,安装方法参考:ubuntu下安装JDK并配置java环境

    总体思路

    服务器端

    1.用JDK自带的Keytool生成keystore文件
      1)打开终端控制台,转向tomcat主目录,执行生成keystore文件命令,这条命令的作用是在tomcat主目录下生成server.keystore文件,这里设定的server.keystore的密码是Envisi0n,这个密码在后面会用到。

    keytool -genkey -alias tomcat -keyalg RSA -keypass Envisi0n -storepass Envisi0n -keystore server.keystore -validity 3600

      2)根据keystore文件生成证书,这条命令的作用是在tomcat主目录下生成server.cer证书文件。

    keytool -export -trustcacerts -alias tomcat -file server.cer -keystore server.keystore -storepass Envisi0n

     客户端如果要访问tomcat的ssl8843端口,需要导入这个证书。当然生成证书的方法还有更加简单的,就是在客户端使用浏览器下载证书,可以是firfox,也可以是chrome,chrome证书导出方式如下:

    3)%TOMCAT_HOME%confserver.xml,找到一下这段内容,将这段的注释取消掉

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" />

    并添加keystoreFile和keystorePass,如下图所示:

      <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                   maxThreads="150" scheme="https" secure="true"
                   clientAuth="false" sslProtocol="TLS" 
                   keystoreFile="/usr/local/tomcat7/server.keystore"
                   keystorePass="Envisi0n"  />

    客户端导入证书

    拿到上面第二步获得的证书以后,将此证书导入到JDK的cacerts库当中,执行如下命令

    keytool -importcert -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -file d:/keystore/cas.cer -alias caskey

    JDK的cacerts这个keystore的默认密码是changeit。

    然后配置tomcat的connector,配置如下

      <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                   maxThreads="150" scheme="https" secure="true"
                   clientAuth="false" sslProtocol="TLS" 
                   keystoreFile="%JAVA_HOME%/jre/lib/security/cacerts"
                   keystorePass="changeit"  />

    应用场景

    可以将上述的服务器端看作是CAS服务器,而客户端怎是web应用。web应用要通过CAS服务器实现单点登录。

  • 相关阅读:
    jquery.md5
    LoginPasswordHelp
    RSA(非对称加密算法、公钥加密算法)
    Swiper 3.4.1
    layer web 弹窗
    操作系统
    查看命令帮助
    软件卸载
    重定向命令
    终端命令格式的组成
  • 原文地址:https://www.cnblogs.com/xwdreamer/p/3466661.html
Copyright © 2011-2022 走看看