我用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日
“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