zoukankan      html  css  js  c++  java
  • Tomcat搭建https并与APR模式兼容

    前言

    当前环境:Ubuntu14 server 64位

    Jdktomcat都已安装成,并且tomcat以配置APR运行模式

    生成https证书

    1、Keytool是jdk自带的证书管理工具。

    2、证书生成

    keytool -genkey -alias myserver -keyalg RSA -keystore my.keystore -dname "CN=192.168.5.244, OU=192.168.5.244, O=192.168.5.244, L=HB, ST=WH, C=CN" -keypass 123456 -storepass 123456 -validity 36500

    参数介绍

    -genkey:表示要创建一个新的秘钥

    -alias:证书别名,每个keystore都关联一个别名,不区分大小写。

    -keyalg:使用的加密算法,这里是RSA

    -keystore:秘钥保存的目录文件,不写目录路径的话生成在当前目录。

    -dname:秘钥的识别名

    CN名称一般填写服务IP或域名

    OU组织单位,随便填,这里写IP。

    O组织名,可随便填,这里写IP。

    L城市名,省会名

    ST名,当前所在城市名

    C国家名CN表示中国。

    -keypass:私有秘钥的密码

    -storepass:存取密码

    -validity:秘钥有效期,36500表示100,默认90

    tomcat不需要以APR模式运行,只需修改tomcat/conf/server.xml文件

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"               

    maxThreads="150" SSLEnabled="true" scheme="https" secure="true"               

    clientAuth="false" sslProtocol="TLS" keystoreFile="my.keystore" keystorePass="123456" />

    同时修改tomcat/conf/web.xml文件(在</welcome-file-list>标签后加入以下信息

    <login-config>  

             <auth-method>CLIENT-CERT</auth-method>  

            <realm-name>Client Cert Users-only Area</realm-name>  

       </login-config>  

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

    配置APR模式证书

    APR模式实际上就是调用Apache底层的http服务,所以https方面,APRApache一样需要采用OpenSSL。需要一个cer证书文件和一个key私钥文件

    1、 导出cer证书文件:

    keytool -export -alias myserver -keystore my.keystore -file mycerts.cer -storepass 123456

    2、 获取私钥文件:

    2.1、把keystore转换成为pkcs12格式

    keytool -importkeystore -srckeystore my.keystore -destkeystore my.p12 -deststoretype PKCS12

    2.2、使用openssl导出私钥:

    openssl pkcs12 -in my.p12 -out myprivKey.pem –nodes

    至此我们需要的两个文件分别是mycerts.cer证书文件和myprivKey.pem私钥文件,把两个文件拷贝到tomcat根目录。

    然后修改tomcat/conf/server.xml文件

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"

                connectionTimeout="20000"

                maxThreads="500"

                minSpareThreads="150"

                enableLookups="false"

                disableUploadTimeout="true"

                acceptCount="300"

                compression="on" compressionMinSize="2048"

        compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

                SSLEnabled="true" scheme="https" secure="true"

                clientAuth="false" sslProtocol="TLS"

                SSLCertificateFile="/usr/local/tomcat/mycerts.cer"

                SSLCertificateKeyFile="/usr/local/tomcat/myprivKey.pem"/>

    注意” SSLCertificateFile”和” SSLCertificateKeyFile”配置绝对路径

    然后重启tomcat,查看日志打印:

    额外备注

    1、 cer证书导入JVM的命令:

    keytool -import -trustcacerts -alias myserver -keystore "$JAVA_HOME/jre/lib/security/cacerts" -file mycerts.cer -storepass 123456

    2、 查看JVM中是否存在此别名的证书命令:

    keytool -list -v -alias myserver -keystore "$JAVA_HOME/jre/lib/security/cacerts" -storepass 123456

    3、 删除JVM中此别名的证书命令:

    keytool -delete -alias myserver -keystore "$JAVA_HOME/jre/lib/security/cacerts" -storepass 123456

     

     

  • 相关阅读:
    Java中的4种代码块
    Java enum(枚举)的用法详解(转)
    Java 可变参数列表
    SQL Server 查询处理中的各个阶段(SQL执行顺序)
    SQL Server 数据查询 整理
    MYSQL常用命令
    SQL的主键和外键约束(转)
    Servlet工作原理(转)
    servlet、genericservlet、httpservlet之间的区别(转)
    关于MyEcplise中常见的问题和解决方案
  • 原文地址:https://www.cnblogs.com/zl-wjzf/p/13500808.html
Copyright © 2011-2022 走看看