运行命令curl -v https://myhost
,curl 显示错误curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to IP:PORT
根本问题可能是什么?
答案1
就我而言,问题不在于 curl 或运行 curl 的主机,而在于我正在使用 curl 的 Web 服务器 nginx。
Web 服务器中未正确配置 TLS,导致 curl 错误。我的服务器的修复方法是添加所需的行ssl_certificate
和ssl_certificate_key
。
在nginx.conf
:
server {
listen 80;
listen 443 ssl;
ssl_certificate /path/to/fullchain.pem; # <-- this line was missing
ssl_certificate_key /path/to/privkey.pem; # <-- this line was missing
}
答案2
对我来说,问题出在我的路由器上。我有一个 PPPoE 互联网连接,MTU 大小小于默认的 1500。所以我必须做的是在路由器上设置有关 mss 限制的防火墙规则:
# iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
有关此问题的更多信息这里