curl:(35)OpenSSL SSL_connect:与domain.com:443相关的SSL_ERROR_SYSCALL

Vin*_*eet 8 php ubuntu curl

我在ubuntu终端上点击我的卷曲并得到这个回应curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to domain.com:443.我真的不明白为什么会这样.我试图显示curl的错误号,但它没有恢复任何否.我正在打另一台服务器.以下是我的命令:

./curl -i --tlsv1.2 -kv -H "Content-Type: application/xml" --verbose -X POST --data /var/www/html/xml.xml --cacert /root/curl_ssl/curl-7.54.1/src/cert_org.crt domain.com/otp
Run Code Online (Sandbox Code Playgroud)

请提出一些帮助.

小智 5

对于使用旧 SSL 协议的站点,Linux 上的 CURL 可能会出现此错误。根据SSL/TLS协议规范,原因可能是客户端hello使用了对端不支持的支持组选项。解决方案是使用sslscan进行探测,获取对端支持的协议版本和密码套件。 SSLscan(Github)


Мак*_*тов 0

问题是该站点仅支持不再被认为安全的密码,即基于3DESRC4的密码。出于安全原因,ssl 库中的默认密码不包含这些密码。

要添加对这些密码的支持,您可以手动设置默认密码套件。下一行将DES-CBC3-SHA设置为建议的密码。

curl --cipher DES-CBC3-SHA <your parameters>

对所有网站使用此方法并不安全。 请注意,此选项只能用于此旧站点。

UPD

用于openssl ciphers列出可与curl一起使用的可用密码(感谢MarkBarry

  • 卷曲:(59)设置密码列表失败:DES-CBC3-SHA (7认同)