zoukankan      html  css  js  c++  java
  • tomcat支持https的历程

    tomcat真是业界良心啊,文档写的详细无比。

    一、https是什么?

    简单的说,就是http+SSL/TLS
    协议还是http,但是在传输层过程中使用了加密(涉及握手、秘钥分发、加密、解密等过程)。

    二、关于SSL支持

    英文好的可以直接参考tomcat默认的在线文档。

    首先请运行本地的tomcat。

    http://localhost:8080/docs/config/http.html#SSL_Support

    三、tomcat支持两种SSL Connector类型

    1. BIO/NIO connectors

    支持由JDK中的工具提供X509证书认证(JAVA语言)

    2. APR/Native connectors

    支持由OPENSSL提供的证书认证(C语言)

    3. 两者的一个比较

    四、关于SSL的配置

    只需要选择一种配置即可。

    1.  jdk证书的配置

    <Connector port="8443"     
        protocol="org.apache.coyote.http11.Http11NioProtocol"
        maxThreads="150" SSLEnabled="true" scheme="https" 
        secure="true"
        clientAuth="false" sslProtocol="TLS" 
        keystoreFile="keystore文件.keystore"
        keystorePass="123456"/>

    PS:jdk证书的生成需要单独写一篇博客记录。

    2. openssl的配置

    <Connector port="8443" 
        protocol="org.apache.coyote.http11.Http11AprProtocol"
        maxThreads="150" SSLEnabled="true" scheme="https" 
        secure="true"
        clientAuth="false" 
        SSLCertificateFile="服务器证书.pem"
        SSLCertificateKeyFile="服务器密钥证书.pem"
        SSLCertificateChainFile="证书链配置.pem"
        sslProtocol="TLS" />

    PS:openssl证书的生成需要单独写一篇博客记录。


    五、tomcat对jdk的支持

    tomcat毕竟是for jee的,对jdk的支持相对简单,网上一搜一大把。

    有时间可以单独写一篇博客记录。

    六、tomcat对openssl的支持

    1. 安装新版本的openssl

    去openssl官网下载最新版本的源码包,编译、安装。

    中间可能遇到一个小坑,参考文章:http://www.cnblogs.com/yoyotl/p/7424967.html

    2. 安装apr库

    去apr官网下载最新版本的源码包,编译、安装。

    3. 安装native库

    这个源码在tomcat的安装目录里。

    cd tomcat的安装路径/bin/
    tar -zxvf tomcat-native.tar.gz
    cd tomcat-native-1.2.12-src
    cd native
    ./configue --with-ssl=/usr/local/ssl
    (/usr/local/ssl是默认的openssl安装路径)
    make && make install

    七、tomcat启动报错?

    1. 报错

    Caused by: org.apache.catalina.LifecycleException: The configured protocol [org.apache.coyote.http11.Http11AprProtocol] requires the APR/native library which is not available

    2. 临时解决

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib

    这是当前shell测试的方法

    3. 永久解决

    3.1 vi ~/.bash_profile
    3.2 在文件后面添加以下两行:
      LD_LIBRARY_PATH=/usr/local/apr/lib
      export LD_LIBRARY_PATH
    3.3 配置生效
      source ~/.bash_profile

    八、tomcat启动正常

    1. 打开浏览器输入https://localhost:8443

    如果能够成功地看到tomcat默认主页就意味着这个tomcat支持https了!

    2. 想确认一下?

    2.1 启动wireshark。

    2.2 分别访问http://localhost:8080和https://localhost:8443。

    2.3 抓包分析。

    http 访问的情况下,能轻松的看到大量的诸如<html>...</html>的明文。
    
    https 访问的情况下,能看到的是肉眼无法识别的密文了(一串看起来毫无规律的字符串)。
  • 相关阅读:
    python-深入学习
    python-第一天学习python
    JMeter-关联、添加压力机、linux下运行、抓包、手机抓包等学习
    python模块---常用模块2
    python模块---常用模块
    python函数--装饰器
    python函数--匿名函数,内置函数,闭包
    python函数--生成器,生成器表达式,列表推导式
    python函数--global,nonlocal ,新格式化输出,迭代器
    python函数--万能参数,形参,名称空间,嵌套,内置函数globals locals ,关键字nonlocal global
  • 原文地址:https://www.cnblogs.com/yoyotl/p/7403584.html
Copyright © 2011-2022 走看看