Set*_*ser 2 php apache ssl curl
Cloudflare 使用 ECDHE_ECDSA 和 AES_128_GCM 密码套件作为其 https 证书。使用 PHP cURL 时,您可以指定密码套件:
curl_setopt($curl, CURLOPT_SSL_CIPHER_LIST, 'ecdhe_ecdsa_aes_128_sha');
Run Code Online (Sandbox Code Playgroud)
但是,如果 cURL 请求请求除 ecdhe_ecdsa_aes_128_sha 之外的其他内容,这对我没有帮助。
设置了以下 Apache 配置,但 PHP cURL 似乎不尊重这一点:
SSLHonorCipherOrder On
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
Run Code Online (Sandbox Code Playgroud)
有没有办法为 PHP cURL 指定密码套件顺序?
环境信息:
[vagrant@devopsgroup ~]$ php -i | grep SSL
SSL => Yes
SSL Version => NSS/3.15.4
OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 1.0.1e-fips 11 Feb 2013
OpenSSL Header Version => OpenSSL 1.0.1e-fips 11 Feb 2013
Native OpenSSL support => enabled
Run Code Online (Sandbox Code Playgroud)
您可以像上面建议的那样指定希望 cURL 使用的密码套件CURLOPT_SSL_CIPHER_LIST,但如果 cURL 是针对 OpenSSL 编译的,那么您需要以 OpenSSL 使用的格式指定密码。
Apache 配置对 cURL 没有影响。
由于 cURL 是使用 OpenSSL 构建的,因此请尝试使用OpenSSL ciphers中的密码名称。
例如:
curl_setopt($curl, CURLOPT_SSL_CIPHER_LIST, 'ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES128-SHA');
Run Code Online (Sandbox Code Playgroud)
这个答案也很有用:https://unix.stackexchange.com/questions/208437/how-to-convert-ssl-ciphers-to-curl-format
| 归档时间: |
|
| 查看次数: |
10769 次 |
| 最近记录: |