PHP Curl TLS 用户名和密码

标签 php ssl curl

我尝试在 PHP 中使用以下 curl 命令:curl --cacert "/certs/cert.pem"--tlsuser user --tlspassword password --data-urlencode name=value https://url .to/path -o 文件.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 routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure。因此我假设我在 curlopt 数组中犯了一个错误,但我不知道我做错了什么。我也试过让 FTP 的东西消失,但那都不起作用。我该如何解决这个问题?

最佳答案

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

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

关于PHP Curl TLS 用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26355258/

相关文章:

ssl - curl 和对话框弹出窗口

php - 使用动态字段名称将数据保存在mysql中

git - 放置 ssl 证书的标准做法

php - 取得mp3文件的长度

ssl - 使用 STARTTLS 和 SSL/TLS 进行身份验证

ssl - https免费证书网站

java - POST curl 请求在 Spring tc 服务器上返回语法错误

python - 在 python 中运行 Curl 命令

PHP 对 N 个数组使用 array_merge

php - 选择两列并计算它们的数量