Composer経由でLaravelをインストールしようとして、Composerをcurlから取得する時に結構厄介なエラーに遭遇しましたので、対処法をシェアします。
自分はLaravelのインストール目的でしたが、Composerインストール時一般に使えるTIPSかと思います。
Download failed: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
file_get_contents(): Failed to enable crypto
file_get_contents(https://getcomposer.org/composer.phar): failed to open stream: operation failed
いろいろ調べて行き着いたのがComposerのissuesです。結構長いスレッドですが…。
Install fails because of getcomposer.org certificate verify failed · Issue #2798 · composer/composer · GitHub
結論から行きましょう。
OpenSSL(正確にはcurl)で使用するCAをダウンロード
wget http://curl.haxx.se/ca/cacert.pem
cp -v -f cacert.pem /full/path/to/certs/ca-bundle-curl.crt
php.ini から認識できるように設定
curl.cainfo=/full/path/to/ssl/certs/ca-bundle-curl.crt
openssl.cafile=/full/path/to/ssl/certs/ca-bundle-curl.crt
この設定をした状態でComposerを導入すればエラーは出ません。
解決するまで結構面倒でした…。
このcrtファイルはcurlのエラーを回避するためのものですので、本来のca-bundle.crtを上書きしないように注意して下さい。
参考までにFreeBSDをお使いの方は、pkgコマンド経由でphp-composerを導入するのが楽かと思います。
sudo pkg install php-composer