Java 在Tomcat 8上配置SSL,连接超时

Java 在Tomcat 8上配置SSL,连接超时,java,tomcat,ssl,tomcat8,tls1.2,Java,Tomcat,Ssl,Tomcat8,Tls1.2,我设置了一个密钥库,并从openssl.com获得了一个SSL证书。我遵循的具体步骤如下: 不幸的是,即使完全按照tomcat的说明并与客户支持部门合作,我的https连接也超时了 tomcat似乎已经启动并运行,正在侦听端口443,但我不知道如何进行更深入的调试。Http请求得到了很好的服务,所以我知道tomcat本身工作得很好 [ec2-user@ip- logs]$ sudo netstat -tunlp | grep 443 tcp6 0 0 :::443

我设置了一个密钥库,并从openssl.com获得了一个SSL证书。我遵循的具体步骤如下:

不幸的是,即使完全按照tomcat的说明并与客户支持部门合作,我的https连接也超时了

tomcat似乎已经启动并运行,正在侦听端口443,但我不知道如何进行更深入的调试。Http请求得到了很好的服务,所以我知道tomcat本身工作得很好

[ec2-user@ip- logs]$ sudo netstat -tunlp | grep 443 
tcp6       0      0 :::443                  :::*                    LISTEN      19407/java

[ec2-user@ip- logs]$ ps -ef | grep java 
root     19407     1  1 23:03 pts/0    00:00:06 /usr/java/jre1.8.0_60//bin/java
-Djava.util.logging.config.file=/usr/apache-tomcat-8.0.26//conf/logging.properties
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/apache-tomcat-8.0.26//endorsed -classpath /usr/apache-tomcat-8.0.26//bin/bootstrap.jar:/usr/apache-tomcat-8.0.26//bin/tomcat-juli.jar -Dcatalina.base=/usr/apache-tomcat-8.0.26/ -Dcatalina.home=/usr/apache-tomcat-8.0.26/ -Djava.io.tmpdir=/usr/apache-tomcat-8.0.26//temp org.apache.catalina.startup.Bootstrap start ec2-user 19449 18021  0 23:13 pts/0    00:00:00 grep --color=auto java
我的连接器配置为:

<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" KeystoreFile="/home/ec2-user/.keystore" KeystorePass="password" />


请帮忙

当我配置tomcat时,如果在我看到任何响应之前有延迟,几乎总是因为端口由于某种原因被阻塞。您是否确定端口443通过防火墙打开(假设这是在外部服务器上完成的)


如果您的标准端口工作正常,但443在失败之前只是停留并旋转了一段时间,我会将资金投入阻塞的端口。

首先确保8443是打开的,443是为https保留的端口,您可以将其用于tomcat,但我更喜欢使用8443或与443不同的另一个端口,以避免与httpd https发生冲突。 用于从外部进行测试

telnet yourserver 8443
必须连接,否则请检查防火墙。 然后检查证书的权限,pem或密钥库(取决于您的配置)必须可以从运行tomcat的组或用户处读取(debian上是tomcat8,fedora上只是tomcat)

例如,这是我对/etc/tomcat/server.xml的配置

 <!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
    <Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="/etc/tomcat/keystore" keystorePass="ooops"
           clientAuth="false" sslProtocol="TLS"/>

端口8443已打开,我可以毫无问题地连接

超时是否在30秒后发生?稍微少一点。大约是25秒您可以指定asyncTimeout(连接器标记属性)。异步请求的默认超时(毫秒)。如果未指定,此属性将设置为Servlet规范默认值30000(30秒)。您是说问题可能在于服务器响应缓慢,并且在请求完成之前超时,因此我应该设置更长的超时时间?看起来很奇怪-我的http端点立即响应。。。我设置了asyncTimeout=“60000”,但它在25秒后仍然超时…是的..类似这样的..在连接器标记中,默认超时是30秒,因为没有指定。还要检查ssl连接是否发生。见天哪。一定是这样。这是一个EC2实例,我只打开了端口80。我会测试的!我们都去过那里。我希望是这样。说真的,我整晚都把头撞在墙上,这就把它修好了。谢谢你!
ls -lh /etc/tomcat/keystore 
-r--r-----. 1 tomcat tomcat 2,6K 20 dic 01.06 /etc/tomcat/keystore