8.47.1. OpenSSL のインストール
OpenSSL をコンパイルするための準備をします。
./config --prefix=/usr \
--openssldir=/etc/ssl \
--libdir=lib \
shared \
zlib-dynamic
パッケージをコンパイルします。
make
ビルド結果をテストする場合は以下を実行します。
make test
30-test_afalg.t というテストが 1 つだけ失敗します。 それはカーネルオプションの CONFIG_CRYPTO_USER_API_SKCIPHER
が有効でない場合、あるいは CBC
が実装された AES 機能を提供するオプション(たとえば CONFIG_CRYPTO_AES
と CONFIG_CRYPTO_CBC
との組み合わせや、CPU が AES-NI をサポートする際の
CONFIG_CRYPTO_AES_NI_INTEL
など)が一つもない場合です。 失敗しても、無視してかまいません。
パッケージをインストールします。
sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile
make MANSUFFIX=ssl install
ドキュメントディレクトリにバージョンを含めます。 他のパッケージとの整合をとるためです。
mv -v /usr/share/doc/openssl /usr/share/doc/openssl-3.1.2
必要であれば、さらにドキュメントをインストールします。
cp -vfr doc/* /usr/share/doc/openssl-3.1.2
注記
ぜい弱性への対処を行った新バージョンが公開されたら、OpenSSL をアップデートすることになります。 OpenSSL 3.0.0
以降では、バージョンのつけ方が MAJOR.MINOR.PATCH という形式になりました。 API/API の互換性は、同一の
MAJOR バージョン番号では保証されます。 本パッケージは libcrypto.so
または libssl.so
へのリンクを行っていますが、LFS
では共有ライブラリをインストールするだけなので、MAJOR
バージョン番号が同一のアップグレードである限り は、パッケージを再コンパイルする必要はありません。
OpenSSH
をインストールしている場合は、上に示した規則とは異なる対応が必要です。 OpenSSL
には必要以上に厳しいバージョンチェックが含まれているため、たとえ OpenSSH の MAJOR バージョンが変わっていなくても MINOR
バージョンが変わっただけで、SSH クライアントも SSH サーバーも動作停止してしまいます。 そのような更新が発生した際には
OpenSSH の再ビルドが必要となります。
OpenSSH を使って今現在、システムにアクセスしている場合、MINOR
バージョンが新しくなった OpenSSL にアップグレードした後には、ログアウトする前に、OpenSSH を再ビルドして再インストールしてください。 そうしておかないと、SSH
を通じたログインができなくなります。
そうであっても、それらのライブラリにリンクしているプログラムが稼働中であるなら、一度停止してから再起動することが必要です。
詳しくは関連する話が 「アップグレードに関する問題」 にあるので参照してください。