我在虚拟 Linux 机器上运行基于 Linux CentOS 7.6 的 Apache。我使用 LetsEncrypt 证书进行 HTTPS。半年来,它运行良好。最近我不得不再次更新证书。这也进展顺利。
我仍然可以通过 HTTPS 连接并查看网页。但是,一旦我开始通过 HTTPS 下载(不依赖于客户端),下载就会在几兆字节后停止。从此刻起,我无法建立任何基于 SSL 的连接,因为 TLS 握手失败 - 客户端 Hello 不再得到答复,无论是通过 HTTPS 还是通过 SSH。此外,Apache 完全没有响应,即使在 HTTP 上也是如此。
我尝试了不同的端口,并从不同的网络下载,以排除最终存在的网络代理。我甚至在从本地主机下载时触发了该问题。
我通过 wireshark 跟踪了网络接口上的传出数据包,并且可以确认,服务器 hello 未被发送。
如果我阻止客户端通过 HTTPS 下载,则需要几分钟,然后才会发送来自 TLS 握手的 Server Hello 数据包!
因此,从我的角度来看,使用新证书的 TLS 安全连接在整体加密少量兆字节后被阻止。几分钟后它似乎又恢复了活力。我完全不知道现在该做什么,而且我在内核或 Apache 日志中找不到任何能给我线索的提示。
你有什么想法吗?
更新:
<VirtualHost *:443>
Include /etc/letsencrypt/options-ssl-apache.conf
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/mydomain/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mydomain/chain.pem
</VirtualHost>
选项-ssl-apache.conf
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
SSLHonorCipherOrder on
SSLOptions +StrictRequire