• Tomcat部署SSL证书过程中遇到的问题


    在CentOS7中Tomcat部署SSL证书时遇到的问题

    1.配置servlet.xml

    配置tomcat/conf/server.xml 加入以下代码

    <Connector port="8443"
        protocol="HTTP/1.1"
        SSLEnabled="true"
        scheme="https"
        secure="true"
        keystoreFile="证书路径"   
        keystoreType="PKCS12"
        keystorePass="这里写密码"   
        clientAuth="false"
        SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
        ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

    tomcat非root用户只能使用1024以上的端口,

    对1024以下的端口进行设置会报以下错误,如443端口:(没有权限)

    Permission denied <null>:443

    root用户启动tomcat有一个严重的问题,那就是tomcat具有root权限。

    这意味着你的任何一个页面脚本(html/js)都具有root权限,所以可以轻易地用页面脚本 修改整个硬盘里的文件!

    所以最好不要使用root启动tomcat。

    因为之前配置80端口时也遇到过,所以想到直接转发端口

    iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443

    这里有一个小坑 在配置证书pfx 地址的时候路径一定要写对,在conf/servlet.xml 的相对路径下是tomcat的根路径,

    并不是conf(这个在tomcat启动后发现无法访问网站,看了日志以后才知道..)

    密码直接复制上去就可以了

    2.http强转https

    在conf/web.xml下加入以下内容:

    #在</welcome-file-list>后添加以下内容:
    <login-config>  
        <!-- Authorization setting for SSL -->  
        <auth-method>CLIENT-CERT</auth-method>  
        <realm-name>Client Cert Users-only Area</realm-name>  
    </login-config>  
    <security-constraint>  
        <!-- Authorization setting for SSL -->  
        <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>

    配置强转以后,我发现访问http 的时候给我转发到8443端口上了,导致无法访问https,http端口为如下配置

    <Connector port="8080"
     protocol="HTTP/1.1"
     connectionTimeout="20000"
     redirectPort="8443"
     maxThreads="1000"
     minSpareThreads="20"
     acceptCount="1000"
     maxHttpHeaderSize="65536"
     debug="0"
     disableUploadTimeout="true"
     useBodyEncodingForURI="true"
     enableLookups="false"
     URIEncoding="UTF-8"/>

    后来将redirectPort改成如下 就好了,应该就是重定向端口的意思(小白猜测)

     redirectPort="443"

    3.重启tomcat服务

    千万别忘了阿里云的防火墙开启443端口!!!

    这个时候不要急,重启后服务器还要编译文件,可能要等个几分钟才能访问你的网站.

  • 相关阅读:
    【Python3网络爬虫开发实战】 1-开发环境配置
    Elasticsearch 基本介绍及其与 Python 的对接实现
    深度学习 GPU环境 Ubuntu 16.04 + Nvidia GTX 1080 + Python 3.6 + CUDA 9.
    React组件方法中为什么要绑定this
    中级前端开发推荐书籍
    20万行代码,搞得定不?
    华为云数据库TaurusDB性能挑战赛,50万奖金等你来拿!
    00036_private
    使用spring等框架的web程序在Tomcat下的启动顺序及思路理清
    http304状态码缓存设置问题
  • 原文地址:https://www.cnblogs.com/bieyaoxiguan/p/11350467.html
Copyright © 2020-2023  润新知