提问者:小点点

如何在PHP curl中使用ECDHE密码?


我用nmap扫描,这是结果:

看起来他们只支持ECDHE,从openssl_get_cipher_methods()的输出来看,没有ECDHE密码!所以我的问题是如何使用PHP CURL客户端连接到远程服务器?

这是我的示例PHP代码,它返回false并返回消息:

“列表中的未知密码:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA”,curl错误号代码为59(无法使用指定的密码。)

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA"); 
curl_setopt($ch, CURLOPT_SSLVERSION, 6); 
curl_setopt($ch, CURLOPT_URL, "xxxxxxxxxxxxxxx"); 
var_dump(curl_exec($ch)); 
var_dump(curl_error($ch)); 
var_dump(curl_errno($ch));

我使用的是PHP 5.3.29、openssl 1.0.1e-FIPS 2013年2月11日


共1个答案

匿名用户

“curlopt_ssl_cipher_list”的格式取决于您的cURL所链接的库。如果您运行的是RedHat派生的Linux,那么它是NSS而不是GNUTLS(Ubuntu)或OpenSSL,因此您将需要相应地转换名称。

下面这个问题应该对你有帮助:

https://unix.stackExchange.com/questions/208437/how-to-convert-SSL-ciphers-to-curl-format