tomcat配置https,cer、key转换,https无法访问

一、背景:

1、证书文件已拥有,且证书格式是cer和key形式
2、centos系统,super用户非root

二、部署:

1、将证书转为keystore形式

  1)先转为p12格式
     openssl pkcs12 -export -in ./server.cer -inkey ./server.key -out ./projectX.p12
    记住输入的密码
  2)将p12转为.keystore格式
    keytool -importkeystore -v  -srckeystore ./projectX.p12 -srcstoretype pkcs12 -srcstorepass   123456 -destkeystore ./server.keystore -deststoretype jks -deststorepass 123456

2、配置tomcat下server.xml文件

  
  这里端口配置为8443, 都是https,其与443的区别在于443可以不用带端口号访问;因为super用户权限问题,这里只能配置8443。

3、如果配置的是8443,但是外网映射的是443,这就需要转发一下了,这里使用的是iptables端口转发
由于没有权限,所以直接以下命令是没有效果的

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

但是可以修改iptables文件的方式:

sudo vi /etc/sysconfig/iptables
添加:-A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443
然后:service iptables restart 即可

三、中间遇到的问题:

1、tomcat启动后http可以访问,443或8443都不能访问
  这是因为443端口没有起来,看下日志就可以看到:
  ["http-nio-443"]  java.net.SocketException: Permission denied
2、使用netstat -ntlp看下端口监听情况:
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:8443                0.0.0.0:*                   LISTEN      25888/java          
tcp        0      0 127.0.0.1:8005              0.0.0.0:*                   LISTEN      25888/java          
tcp        0      0 0.0.0.0:8009                0.0.0.0:*                   LISTEN      25888/java          
tcp        0      0 :::22                       :::*                        LISTEN      -                   
看8443是否启动
3、端口已经启动,但是访问一直加载或还是访问不通
  这个就是内网与外网映射端口问题了,如果只映射了443,那8443是铁定访问不了了。

你可能感兴趣的:(tomcat配置https,cer、key转换,https无法访问)