1. 创建证书
    使用JDK自带的keytool工具生成证书
    命令为:keytool -genkey -keyalg RSA -dname "cn=192.168.10.78,ou=xxx,o=xxx,l=GZ,st=GD,c=CN" -alias server -keypass 123456 -keystore E:/cer/server.jks -storepass 123456 -validity 36

    这时会在E:/cer/目录下生成一个文件名为server.jks的文件

  2. 导出证书
    命令为:keytool -export -alias server -keystore E:/cer/server.jks -file E:/cer/server.cer -storepass 123456

    E:/cer/目录下生成server.cer 文件

  3. server.jks 转换成PKCS12
    命令为:keytool -importkeystore -srckeystore E:/cer/server.jks -destkeystore E:/cer/server.p12 -srcstoretype JKS -deststoretype PKCS12

  4. 生成server.key

    命令:openssl pkcs12 -in E:/cer/server.p12 -out E:/cer/server.key -nodes

  5. tomcat server.xml配置
    在server.xml中修改为如下

    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

    <Connector port="443" protocol="org.apache.coyote.http11.Http11AprProtocol"
            address="0.0.0.0"
                   maxThreads="150" SSLEnabled="true" clientAuth="false"
            scheme="https" secure="true" sslProtocol="TLSv1+TLSv1.1+TLSv1.2"
            SSLCertificateFile="E:/cer/server.cer" 
            SSLCertificateKeyFile="E:/cer/server.key" 
                   SSLVerifyClient="optional">
        </Connector>

  6. 访问http时自动跳转到https

     修改tomcat conf目录下的web.xml文件,在<welcome-file-list>上面加入如下的代码:

    <security-constraint>
           <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>



注意:本文归作者所有,未经作者允许,不得转载