Homebrew で OpenSSL をインストール
自分の環境 (macOS Catalina Version 10.15.4) では、以下のように openssl
command を打つと、 LibreSSL が使われていることがわかります。
$ openssl version LibreSSL 2.8.3
現在、 OpenSSL の主要な fork として、本家を含めて、以下の 3 つが存在します。
これ何かといえば、 2014-04 に公表され、世間を揺るがせた、有名な OpenSSL の Heartbleed 脆弱性が発端になって、誕生したもの。 (僕の中では 2010 年代に発覚した 2 大脆弱性といえば、これと、 2018-01 に公表された CPU 脆弱性の Spectre / Meltdown です)
この事件を機に、コードベースが古く、膨大になっていた OpenSSL からの脱却を図るべく、 OpenSSL を利用していた OpenBSD チームが独自 fork である LibreSSL を作成しました。 また、 Google も LibreSSL に続いて、主に社内利用を目的に BoringSSL という fork を作成しました。
オープンソースではこの手のことはよくあることです。
fork じゃないけど
どれも、なんだかんだ本家も譲らずに、改善を重ねて、よい (?) ライバル関係になったりするものです。
話がそれたけど、 LibreSSL は基本的には OpenSSL との互換性を保っているものの、やはり fork した時点で、完全に互換性を保つのは難しいものです。
なので、 openssl
と打ったのに、内実 LibreSSL なのはどうなんだと思う気持ちもあったりする。
そこで、 macOS で本家 OpenSSL を Homebrew で入れることにします。
なお、僕の環境では、なぜか既に入っていたのですが (依存関係かな?)、念の為 brew reinstall
します。
入っていない場合は brew install
してください。
(実際としては openssl@1.1
が入るようです)
$ brew update $ brew reinstall openssl
ただ、このままだと macOS の標準コマンドが使われるため、 Homebrew で入れたほうが使われるようにします。
ネットを調べると、以下のように brew link
を使えばいいよ、と出てきたのですが、実行してみると、以下のように怒られる。
$ brew link --force openssl Warning: Refusing to link macOS provided/shadowed software: openssl@1.1 If you need to have openssl@1.1 first in your PATH run: echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc For compilers to find openssl@1.1 you may need to set: export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib" export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include" For pkg-config to find openssl@1.1 you may need to set: export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"
指示に従って (ただ、ちょっとアレンジして)、素直に、 PATH
を上書きし、 Homebrew で入れたほうが使われるようにします。
$ echo 'export PATH=$(brew --prefix openssl)/bin:$PATH' >> ~/.zshrc $ source ~/.zshrc $ openssl version OpenSSL 1.1.1g 21 Apr 2020
無事に本家 OpenSSL が使われるようになりました。
References
- LibreSSL の現在(2018年2月時点) - Qiita
- LibreSSL の意義 - Qiita
- Heartbleed - Wikipedia
- Spectre (security vulnerability) - Wikipedia)
- Meltdown (security vulnerability) - Wikipedia)
- macos - How to install latest version of openssl Mac OS X El Capitan - Stack Overflow
- macos - Update OpenSSL on OS X with Homebrew - Stack Overflow
- macos - How do you re-install a package with Homebrew (Mac)? - Super User
- Since upgrading to OSX Mojave, am receiving warnings about commonmarker-0.17.9/0.17.7.1 · Issue #5155 · Homebrew/brew