🌊

composerでSSLのエラーが出る場合の対処法

2021/02/27に公開

不具合の内容

ローカル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