PHP Curl TLS用户名和密码

时间:2014-10-14 07:41:42

标签: php ssl curl

我尝试在PHP中使用以下curl命令:curl --cacert "/certs/cert.pem" --tlsuser user --tlspassword password --data-urlencode name=value https://url.to/path -o file.txt

我的PHP代码如下,但我总是出错:

$data = array("name" => "value");
$this->curl = curl_init();
curl_setopt_array($this->curl, array(
        CURLOPT_CAINFO => getcwd()."/cert.pem",
        CURLOPT_USERPWD => user.":".password,
        CURLOPT_URL => "https://url.to/path",
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_POSTFIELDS => $data,
        CURLOPT_PROTOCOLS => CURLPROTO_HTTPS,
        CURLOPT_FTPSSLAUTH => CURLFTPAUTH_TLS,
        CURLOPT_FTP_SSL => CURLFTPSSL_ALL,
        CURLOPT_SSL_VERIFYPEER => FALSE,
        CURLOPT_SSL_VERIFYHOST => 2
    ));
$res = curl_exec($this->curl);

我总是收到错误号35(CURLE_SSL_CONNECT_ERROR)和以下错误消息:rror:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败。因此我假设我在curlopt数组中犯了一个错误,但我不知道我做错了什么。我也试图让FTP的东西离开,但这既不起作用。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

--tlsuser--tlspassword用于根据RFC 5054通过TLS执行SRP(安全远程密码) - 这不是TLS的常用功能。

您的PHP程序没有设置这些选项。他们称之为CURLOPT_TLSAUTH_USERNAMECURLOPT_TLSAUTH_PASSWORD那里。