【问题标题】:Tomcat 8.5.4 SSL Empty ResponseTomcat 8.5.4 SSL 空响应
【发布时间】:2017-03-22 15:45:42
【问题描述】:

我最近为我在 Ubuntu 上运行的 Tomcat 服务器续订了 Let's Encrypt 证书。

使用新的 fullchain.pem 更新密钥库并重新启动 Tomcat 后,SSL 请求返​​回空响应。对端口 80 的任何非 SSL 请求都可以正常工作。

我使用以下命令创建了一个 keystore.jks,密码为“password”,别名为“tomcat”:

openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out pkcs.p12 -name tomcat
keytool -importkeystore -deststorepass password -destkeypass password -destkeystore keystore.jks -srckeystore pkcs.p12 -srcstoretype PKCS12 -srcstorepass password -alias tomcat

在我的 Tomcat 的 server.xml 中,我启用了两个连接器:

    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443"
               address="serveraddress"
               maxHttpHeaderSize="65536"
                />
    <Connector port="443" protocol="HTTP/1.1"
               maxThreads="25" scheme="https" secure="true"
               SSLEnabled="true" keystorePass="password"
               keystoreFile="conf/keystore.jks" clientAuth="false" 
               keyAlias="tomcat" sslProtocol="TLSv1.2"
               address="serveraddress"
               maxHttpHeaderSize="65536"
               />

curl 请求curl server.com 成功,但curl server.com:443 返回一个空响应。当它绑定到 localhost 时,我已经尝试在外部和端口上进行卷曲。

我到处都查过这个问题,但我仍然无法弄清楚为什么会这样。有什么建议吗?

【问题讨论】:

    标签: tomcat ssl tomcat8


    【解决方案1】:

    您需要包含协议 HTTPS。 curl https://server.com:443

    443 是可选的,因为它是 HTTPS 的默认端口。

    "如果您指定的 URL 没有协议:// 前缀,curl 将尝试猜测您可能想要的协议。然后它将默认为 HTTP,但会尝试基于常用主机名前缀的其他协议。例如,对于主机以“ftp”开头的名称。curl 将假定您要使用 FTP。”

    https://curl.haxx.se/docs/manpage.html

    【讨论】:

      猜你喜欢
      • 2018-04-16
      • 1970-01-01
      • 2015-09-30
      • 2017-01-20
      • 2016-10-06
      • 2019-05-07
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多