PHP で (NSS を使用した) curl ライブラリを使用して、他のサーバーに接続しています。プードルの脆弱性 (ちなみに CloudFlare) が原因で宛先サーバーが SSLv3 のサポートを停止した先週までは、すべて問題ありませんでした。現在、TLS を使用して接続しようとしていますが、まだ「SSL 接続エラー」が発生しています。
私が使用しているサンプルコードがあります:
$ch = curl_init();
curl_setopt_array( $ch, array(
CURLOPT_URL => 'https://www.lumiart.cz',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSLVERSION => 1,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_VERBOSE => true
) );
$output = curl_exec( $ch );
echo $output;
print_r( curl_getinfo( $ch ) );
echo 'error:' . curl_error( $ch );
curl_close($ch);
私の理解では、 に設定CURLOPT_SSLVERSION
すると1
TLS 経由の接続が強制されるはずです。
注:私はCURLOPT_SSL_VERIFYPEER => false
デバッグのためだけに持っています。この問題を理解したら、そのままにしておくつもりはありません。
これは出力です:
Array
(
[url] => https://www.lumiart.cz
[content_type] =>
[http_code] => 0
[header_size] => 0
[request_size] => 0
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0
[namelookup_time] => 2.3E-5
[connect_time] => 0.005777
[pretransfer_time] => 0
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => -1
[upload_content_length] => -1
[starttransfer_time] => 0
[redirect_time] => 0
[certinfo] => Array
(
)
[primary_ip] => 2400:cb00:2048:1::681c:86f
[redirect_url] =>
)
error:SSL connect error
これらはすべて共有ホスティング プロバイダーにあるため、php.ini の構成を変更したり、コンポーネントを更新したりすることはできません。私が持っているのは phpinfo() だけです。これらのコンポーネント バージョンでの TLS サポートを確認しましたが、問題ないはずです。以下は phpinfo の抜粋です。
PHP Version 5.4.32
System Linux wl42-f262 2.6.32-431.5.1.el6.x86_64 #1 SMP Wed Feb 12 00:41:43 UTC 2014 x86_64
curl:
cURL support enabled
cURL Information 7.19.7
Age 3
Features
AsynchDNS No
Debug No
GSS-Negotiate Yes
IDN Yes
IPv6 Yes
Largefile Yes
NTLM Yes
SPNEGO No
SSL Yes
SSPI No
krb4 No
libz Yes
CharConv No
Protocols tftp, ftp, telnet, dict, ldap, ldaps, http, file, https, ftps, scp, sftp
Host x86_64-redhat-linux-gnu
SSL Version NSS/3.15.3
ZLib Version 1.2.3
libSSH Version libssh2/1.4.2
その問題は TLS の代わりに SSLv3 を使用していることだと思いますが、100% 確実ではありません。私が得ているのは「SSL接続エラー」だけで、接続に使用されたSSLバージョンを見つける方法がわかりません。
どのSSLバージョンが接続に使用されているかを確認する方法はありますか? または、何か不足していますか?