OpenSSL から LibreSSL へ移行しています
参照:LibreSSL
色々な物を再ビルドしなきゃならないので大変
LibreSSL は OpenSSL から派生したTLS/SSLプロトコルの実装で、2年ほど前に大騒ぎになったHeartBleed(心臓出血)脆弱性を機にスタートしたものです。LibreSSL Wikipedia を読むと、経緯や変更点などが色々書かれています。
OpenSSL にはワタシも色々と悩まされてきまして、現在も新しい OpenSSLがリリースされる度、PowerPCの種類を判定する部分を修正してはビルドしていました。
LibreSSL から取り払われたソースには PowerPCの種類を判定する処理も含まれていたようで、いちいち修正しなくても良くなりました。
LibreSSL は、基本的に OpenSSL のAPIと互換がありますが、バイナリ互換はないので OpenSSL から LibreSSLに移行するには LibreSSL を使用するように指定して再ビルドする必要があります。
と言うことで、取り合えず LibreSSL のインストールを備忘録として書いておこうと思います。この後、OpenSSL を使用していた物を LibreSSL を使用するよう再ビルドしていくのですが、何せ数が多いのでそこまで書けるかどうか・・・
- LibreSSLのダウンロード
LibreSSL公式ホームページからソースプログラムをダウンロードします。現時点での最新版は LibreSSL 2.4.1 でした。
- 解凍&ビルド
$ tar xzf libressl-2.4.1.tar.gz
$ cd libressl-2.4.1
$ ./configure ¥
--prefix=/usr/local/libressl ¥
--enable-shared ¥
CC=/usr/local/bin/gcc ¥
CFLAGS="-O3" ¥
LDFLAGS="-L/usr/local/lib -L/usr/lib" ¥
CPPFLAGS="-I/usr/local/include -I/usr/include"
$ make
$ make check
〜
============================================================================
Testsuite summary for libressl 2.4.1
============================================================================
# TOTAL: 54
# PASS: 53
# SKIP: 1
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
============================================================================
|
備考1)「¥」は実際には継続行を示す半角の「\」(バックスラッシュ)。
備考2) 上では自分でビルドした "/usr/local/bin/gcc"(gcc-5.4)を使用している。Apple-gcc(gcc-4)を使用するには CC="/usr/bin/gcc"。
OpenSSL は "/usr/local/ssl" にインストールしていたので、LibreSSL は "/usr/local/libressl" にインストールするようにしました。--prefixオプションを指定せずOpenSSLを "/usr/local" 配下にインストールしている場合は、OpenSSL を上書きしてしまわないように注意です。(上書きしてしまうと、OpenSSL を使用している様々なものが動作できなくなります。)
- インストール
これで "/usr/local/libressl" 配下に LibreSSLがインストールされるはず。
OpenSSL を使用していて、かつ自分でビルドしていた物で思いつくのは、
- OpenSSH
- libssh2
- Apache
- PHP
- Curl
- OpenVPN
- Squid
- ClamAV
- MySQL
- NTP
- Subversion
等々、他にもあるかも・・・何せ暗号化通信の基盤だからねぇ。う〜ん、大変だこりゃ。
|