当前位置: 首页 > 知识库问答 >
问题:

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

解修然
2023-03-14

我设置了一个密钥库,并从openssl.com.获得了SSL证书。我遵循的确切步骤如下:https://drive.google.com/file/d/0B6PUGo7cBLcDTzdkc0pzT2pTMk0/view?usp=sharing

不幸的是,即使在严格按照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" />

请帮忙!

共有2个答案

纪俊良
2023-03-14

首先确保8443是开放的,443是为https保留的端口,您可以将其用于tomcat,但我更喜欢使用8443或其他不同于443的端口,以避免与http冲突。从外面测试

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打开了,我可以毫无问题地连接

叶文博
2023-03-14

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

如果你的标准端口工作正常,但是443只是在失败前停留并旋转一段时间,我会把我的钱放在一个堵塞的端口上。

 类似资料:
  • 我以前从来没有设置过SSL/TLS,它不起作用,我也不知道如何调试它。最初的谷歌搜索没有找到选项。以下是我所做的: > 使用openSSL生成私钥和CSR openssl req-out csr.csr-new-newkey rsa:2048-nodes-keyout privatekey.key 我的csr签名并从startssl.com下载证书(第一年免费) 将root、intermediat

  • Hi想知道是否有办法设置套接字的超时,以及在连接握手之前重试的次数。我在非常糟糕的连接模式下测试了我的应用程序,我为我在Volley中的请求设置了重试策略为10秒,但SSL握手似乎是个问题,因为它有一个默认的超时设置为60秒,而Volley超时只被触发当套接字由于尝试次数或超时而失败时。 下面是我的方法: 我正在使用截击来提出我的请求,我实现这一点的方法是: 我还尝试设置了这样的超时:

  • 我正在尝试配置我的jetty环境,使其能够有一个安全的连接。 我运行了官方jetty文档中描述的步骤:https://www.eclipse.org/jetty/documentation/9.4.31.v20200723/jetty-ssl-distribution.html。但没有成功.. 重新创建的步骤: java-jar start.jar--create-startd--add-to-s

  • 问题内容: 我正在尝试连接到Java中的HTTPS端点。我尝试过的每种方法(下面有更多详细信息)最终都会生成此堆栈跟踪: 我努力了: 与javax SOAP库和新的URL(“ https:// …”)连接 使用新的URL(“ https:// …”).openConnection()连接 手动创建SSL连接: 更多细节: 我尝试过的每一种方法都可以与其他SSL服务器配合使用,这就是这种特殊的服务器

  • 我正在使用resin服务器+spring框架和c3p0连接池。我已经使用以下属性文件配置了连接池。但不知怎的,每隔24小时左右,我的网站就会出现连接超时错误,然后我不得不重新启动我的resin服务器,让网站重新运行。请告诉我在下面的配置文件中有什么错误,以及我在这里缺少了什么。

  • 这两个服务工作于:{public-ip}:8080/service-1和{public-ip}:8181/service-2。现在,我想在这个服务器上安装一个SSL证书来保护到两个endpoint的连接,我怎么做?我找到的所有相关答案都使用端口8443上的单个连接器: 但我需要使用多个连接器。