cURL脚本在一台服务器上运行时有效,但在另一台服务器上不起作用


cURL script works when run from one server but not another

我最近将cURL脚本从一个服务器(Ubuntu)移动到另一个服务器(Mac OS X),该脚本在Ubuntu服务器上运行时可以工作,但在OS X服务器上不起作用。我得到错误35和这个:

error:14077417:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert illegal parameter

任何想法?

编辑:这可能是一个很好的线索。这行不通:
curl -v https://foo.com/OA_HTML/RF.jsp?function_id=123

curl -v -sslv3 https://foo.com/OA_HTML/RF.jsp?function_id=123

现在我只需要知道如何在PHP中执行相当于第二个命令的操作。

可能是php.ini设置或apache follow或openbasedir设置!

我知道我迟到了,但是相当于

curl -v -sslv3 https://foo.com/OA_HTML/RF.jsp?function_id=123

$ch = curl_init();     
curl_setopt($ch, CURLOPT_SSLVERSION, 3); //set to force SSL3
curl_setopt($ch, CURLOPT_URL, "https://foo.com/OA_HTML/RF.jsp?function_id=123");
$result = curl_exec ($ch);  //execute the request

大多数时候CURL over SSL使用OpenSSL,很可能在新服务器上没有安装或启用CURL或OpenSSL。在服务器上保存一个文件:

<?php phpinfo(); ?>

并检查是否启用了


添加

或者您的SSL证书没有在您试图使用它们的机器上创建。每个SSL证书都有关于每台机器的特定信息(如果从在线供应商接收)