🌊
composerでSSLのエラーが出る場合の対処法
不具合の内容
ローカルPCにて、composerでrequireするときやself-updateするときにSSLのエラーが出て実行できない状態になっていました。
この対処法にハマったのでメモ。
例えばself-updateを行ったときこんなエラーが出ます。
$composer self-update
[Composer\Downloader\TransportException]
OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to getcomposer.org:443
SSLまわりのエラーなので、PHPのopen_ssl等々の設定やインストールの確認をしてみたけど状況は変わらず。。
というか以前はできていたのになんでだろう。。
IPv6が原因だった
もしかしてウイルス対策ソフトの原因かもと思い、ネットワークまわりのチェックを一時外してみたけど変わらず。。
ただPC側のネットワークが原因かも?と思い、なんとなくMacのIPv6の設定を確認してみる。
環境設定 > ネットワーク > (接続中ネットワークの) 詳細 > TCP/IPタブ > IPv6の設定
「リンクローカルのみ」になっていたところを「自動」に変えてみる。
そして再びself-update。
$ composer self-update
Upgrading to version 2.0.4 (stable channel).
Use composer self-update --rollback to return to version 2.0.0-RC1
い け た !!
というわけでIPv6が関係しているようです。
規定は“自動”となっているはずですが、どこかの記事で「IPv6 を“リンクローカルのみ”に指定するとネットワークが安定する」みたいな話があって設定を変えていたような。。
この記事だけ見ると一瞬で解決したように見えますが、ここに辿り着くまでとてつもなく時間がかかりました。
他に困っている人の助けになれば幸いです。
Discussion