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端口!!!

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

猜你喜欢

转载自www.cnblogs.com/bieyaoxiguan/p/11350467.html