欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux 服务器 Tomcat http 改成https

程序员文章站 2022-05-01 09:39:17
...

1.进入到linux目录下

/usr/local/tomcat7/conf/

2.生成证书

keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/tomcat7/conf/.keystore
cat conf/.keystore 

keytool -genkey:自动使用默认的算法生成公钥和私钥

-alias[名称]:给证书取个别名

-keyalg:制定**的算法,如果需要制定**的长度,可以再加上keysize参数,**长度默认为1024位,使用DSA算法时,**长度必须在512到1024之间,并且是64的整数倍

-keystore:参数可以指定**库的名称。**库其实是存放迷药和证书文件,**库对应的文件如果不存在会自动创建。

-validity:证书的有效日期,默认是90天

-keypass changeit:不添加证书密码

-storepass changeit:不添加存储证书的密码

3.修改tomcat配置文件server.xml
修改配置tomcat服务器 server.xml

 <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" 
               uRIEncoding="UTF-8"
               />

将8443 改成443 ,因为https默认的端口是443,http默认的80

释放以下,将8443改成443,保持对称 keystoreFile 和 keystorePass 添加上

<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
  keystoreFile="D:/software/apache-tomcat-7.0.54/tomcat.keystore" keystorePass="Ab123456"
  />   

4.重启tomcat

只运行 https,不允许http 则 web.xml 的 welcome-file-list 下面 中添加

<welcome-file-list>
        <welcome-file>/</welcome-file>
    </welcome-file-list>
<security-constraint>
        <web-resource-collection>
            <web-resource-name>sslwebsokect</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

6.再次重启tomcat,访问http后会自动跳转到https

5.浏览器访问https

问题解决:

在两个不同的机器上,使用相同的.keystore,配置也相同,但是其中一个机器不知道为何总是访问不了https

检查步骤:

1.用wget连本地

linux 服务器 Tomcat http 改成https

2.用wget连外网

linux 服务器 Tomcat http 改成https

3.用lsof -i:8443检查端口的监听状态

linux 服务器 Tomcat http 改成https

linux 服务器 Tomcat http 改成https

4.用/etc/init.d/iptables status检查防火墙状态

linux 服务器 Tomcat http 改成https

linux 服务器 Tomcat http 改成https

5.发现问题:没有进行端口的转发,执行以下命令即可

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

6.解决ie访问不了的问题

clientAuth="false" sslProtocol="TLS" 
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA"

linux 服务器 Tomcat http 改成https