Help us understand the problem. What is going on with this article?

ComposerからLaravelを導入しようとしてOpenSSL周りのエラーで困った件

More than 5 years have passed since last update.

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした