Ubuntu 22,04:OpenSSLを3.0.2から3.0.7にアップグレードしましたが、 'openssl version'コマンドはまだライブラリを3.0.2としてマークします。

Ubuntu 22,04:OpenSSLを3.0.2から3.0.7にアップグレードしましたが、 'openssl version'コマンドはまだライブラリを3.0.2としてマークします。

OpenSSLを手動で3.0.2から3.0.7にアップグレードしました。 3.0.2で利用可能なパッチがあることはわかっていますが、バージョンがまだ3.0.2と表示されている理由を引き続き説明するよりも、この方法で管理に応答する方が簡単です。したがって、これについて言及する必要はありません。

インストール後に次のコマンドを使用すると、最初に「BIO_f_zlibシンボルが見つかりません」というエラーが発生しました。

config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl share zlib

設定を次に変更します。

config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl no-comp

成功しました。

これでインストールが完了したので、次のコマンドがopenssl version表示されます。

OpenSSL 3.0.72022年11月1日(ライブラリ:OpenSSL 3.0.22022年3月15日)

ライブラリのバージョンがバイナリのバージョンと一致するようにインストールを変更するにはどうすればよいですか?
メモ:

  • 名前が../etc/ld.so.conf.dのファイルの内容を更新しました。openssl-3.0.7.conf/usr/local/ssl/lib
  • また、システム環境PATH varを含めるように変更しました/usr/local/ssl/bin
  • 実行しldconfig -vsource /etc/environment更新した後(喜びなし)ついに再起動しました(まだ喜びなし)。

それでも出力に不一致が表示されますopenssl version

再接続するよう提案してみましたが、libssl.so.3成功しませんでした。以下の環境情報と後続のopenssl version出力を参照してください。/usr/local/ssl ビルドの設定オプションに基づいて新しいOpenSSL(3.0.7)をインストールしました。

#lsb_release-a
利用可能なLSBモジュールはありません。
出版社ID:Ubuntu
説明: Ubuntu 22.04.1 LTS
リリース時間: 22.04
コードネーム:ジェイミー

# /usr/local -name 'libssl.so*' 検索
/usr/local/qualys/cloud-agent/lib/libssl.so.1.1
/usr/local/qualys/cloud-agent/lib/libssl.so
/usr/local/ssl/lib64/libssl.so.3
/usr/local/ssl/lib64/libssl.so
/usr/local/lib64/libssl.so
/usr/local/lib64/libssl.so.3_3.0.2 <== libssl.so.3で名前が変更されました
/usr/local/src/openssl-3.0.7/libssl.so.3
/usr/local/src/openssl-3.0.7/libssl.so

#ls-l/usr/ローカル/lib64/libssl.so*
lrwxrwxrwx 1ルートルート32 11月2日17:07 /usr/local/lib64/libssl.so ->/usr/ローカル/ssl/lib64/libssl.so.3
-rwxr-xr-x 1 root root 809464 11月1日、15:55 /usr/local/lib64/libssl.so.3_3.0.2

#ls-l/usr/ローカル/ssl/lib64/libssl.so*
lrwxrwxrwx 1ルートルート11月1日、21:23 /usr/local/ssl/lib64/libssl.so -> libssl.so.3
-rwxr-xr-x 1 root root 808704 11月1日、21:23 /usr/local/ssl/lib64/libssl.so.3

#openssl バージョン -a
OpenSSL 3.0.72022年11月1日(ライブラリ:OpenSSL 3.0.22022年3月15日)

ビルド時間:2022年10月27日木曜日17:06:56 UTC

プラットフォーム: debian-amd64

オプション: bn(64,64)

コンパイラ: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-WsPfAX/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENS te -time-D_FORTIFY_SOURCE=2

OPENSSLDIR: "/usr/lib/ssl"

ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-3"

モジュールディレクトリ: "/usr/lib/x86_64-linux-gnu/ossl-modules"

シードソース:オペレーティングシステム固有

CPUINFO: OPENSSL_ia32cap=0xfefa32035f8bffff:0x1c2ffb

何が欠けており、ライブラリを使用しているプロセスが正しいバージョンのライブラリを使用しているかをどうやって確認できますか?

ベストアンサー1

ライブラリが更新されていないようです。 OpenSSLの更新に加えて、そのライブラリ(この場合はlibssl)も更新する必要があります。最良の方法は次のとおりです。

apt update
apt upgrade

OpenSSLを手動で更新すると、一部の使用が中断される可能性があります。ライブラリはシステム内の他のライブラリと一致しないため、上記の2つのコマンドを使用するのが最善です。お使いのシステムは、リポジトリのOpenSSLよりも最新のOpenSSLをサポートする準備ができていない可能性があります。

別の方法は、すべてのライブラリを手動で更新することです。したがって、OpenSSLを最初に手動で更新してからlibsslを手動で更新し、さらに他のライブラリを手動で更新するだけです。ただし、システム全体を最新バージョンにアップグレードする必要があるかもしれませんが、これはお勧めできません。

おすすめ記事