linux 服务器 Tomcat http 改成https

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>sslwebsokectweb-resource-name>
            <url-pattern>/*url-pattern>
        web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIALtransport-guarantee>
        user-data-constraint>
    security-constraint>

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

5.浏览器访问https

问题解决:

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

检查步骤:

1.用wget连本地

2.用wget连外网

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

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

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)