在 Tomcat 8 上配置了 SSL 并且连接超时
Configured SSL on Tomcat 8 and Connection Times Out
我设置了一个密钥库并从 openssl.com 获得了一个 SSL 证书。我遵循的确切步骤在这里:https://drive.google.com/file/d/0B6PUGo7cBLcDTzdkc0pzT2pTMk0/view?usp=sharing
不幸的是,即使完全按照 tomcat 的说明并与客户支持合作,我的 https 连接也会超时。
好像是tomcat up 和运行,监听443端口,但是不知道怎么debug更深。 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"/>
密钥库权限
ls -lh /etc/tomcat/keystore
-r--r-----. 1 tomcat tomcat 2,6K 20 dic 01.06 /etc/tomcat/keystore
8443端口打开,可以正常连接
我设置了一个密钥库并从 openssl.com 获得了一个 SSL 证书。我遵循的确切步骤在这里:https://drive.google.com/file/d/0B6PUGo7cBLcDTzdkc0pzT2pTMk0/view?usp=sharing
不幸的是,即使完全按照 tomcat 的说明并与客户支持合作,我的 https 连接也会超时。
好像是tomcat up 和运行,监听443端口,但是不知道怎么debug更深。 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"/>
密钥库权限
ls -lh /etc/tomcat/keystore
-r--r-----. 1 tomcat tomcat 2,6K 20 dic 01.06 /etc/tomcat/keystore
8443端口打开,可以正常连接