0

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-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 日

4

2 回答 2

0

'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

于 2018-01-31T16:44:55.570 回答
0

我找到了根本原因,我正在使用 NSS 包 3.19 运行 CentOS。默认情况下,此版本不启用 ECC 密码(ECDHE 是 ECC 密码之一),升级到 NSS 3.21+ 后修复。

https://bugzilla.mozilla.org/show_bug.cgi?id=1205688
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_3.21_release_notes
https://tools.ietf.org/html/rfc4492
于 2018-02-01T06:27:34.757 回答