AWSのUbuntu 14.04でCurlを使っていたら、以下のエラーに遭遇。
(35) Unknown SSL protocol error in connection to
ここで議論されている。http://sourceforge.net/p/curl/bugs/1319/
その他の、この問題に関する情報: http://blog.techstacks.com/2010/03/3-common-causes-of-unknown-ssl-protocol-errors-with-curl.html
色々調べた結果、–ciphers RC4-MD5 のオプションを付ける。PHPだと以下のcurl_steoptで解決したのだが、いくつかのサイトへのアクセスは解決できなかった。curlの問題というか、サーバーの設定の問題な気もするんだけど。
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'RC4-SHA:RC4-MD5');
curl、libcurl をコンパイル
上記の問題に合わせて、curl、libcurl の最新版をコンパイルしたのでメモしておくが、上記の問題は解決しないw。新しいのを入れたい時にでも。
cURLの最新版は http://curl.haxx.se/download.html
テンポラリーな場所を作って、ソースをダウンロードして、展開し、そして展開先に移動
> mkdir temp > cd temp > wget https://github.com/bagder/curl/releases/download/curl-7_44_0/curl-7.44.0.tar.gz > tar -xvf curl-7.44.0.tar.gz > cd curl-7.44.0
curlのビルドに必要な物を入れておく。
> sudo apt-get build-dep curl
コンフィグレーションとMake、Make install
> ./buildconf > ./configure > make > sudo make install
autoconf が必要と言われたら以下を実行してから、上記を再度行う。
> sudo apt-get update > sudo apt-get install autoconf
make install すると以下にそれぞれ作成される。
/usr/local/lib/libcurl.so.4.4.0 /usr/local/bin/curl
以下のコマンドでシンボリックリンクを作成
#バックアップしておく。 > sudo mv /usr/bin/curl /usr/bin/curl.org > sudo ln -s /usr/local/bin/curl /usr/bin/curl > sudo ln -s /usr/local/lib/libcurl.so.4.4.0 /usr/lib/libcurl.so
Apache2を再スタート
> sudo service apache2 restart
Curl バージョンの確認
> curl -V #または > curl --version