OpenSSLのバージョン確認と更新方法|Ubuntu・Amazon Linux 2023(dnf)対応

saratogax
記事内に商品プロモーションを含む場合があります

時々発生する OpenSSL の脆弱性問題。

2022 年 5 月には以下のケースが報告されました。

CVE-2022-1292
 OpenSSL 1.0.2zeより前のバージョン
 OpenSSL 1.1.1oより前のバージョン
 OpenSSL 3.0.3より前のバージョン

CVE-2022-1343、CVE-2022-1434、CVE-2022-1473
 OpenSSL 3.0.3より前のバージョン

早めに対処しないといけないケースが多いですが、ディストリビューションによってはパッケージの対応が遅かったり・・・。

ということで、Ubuntu18.04 や AmazonLinux2 でどのように対応したらいいか試してみましたので紹介します。

本記事の実例は Ubuntu 18.04 / Amazon Linux 2・2022 年時点のものですが、openssl version での確認 → パッケージマネージャで更新という流れ自体は今も変わりません。
ただし Amazon Linux 2 は 2026 年 6 月 30 日でサポート終了(EOL)しました。現行は Amazon Linux 2023 で、パッケージマネージャは yum ではなく dnf、OpenSSL も 3 系が標準です。これから対応する方は、後述の「Amazon Linux 2023 での確認・更新」をご覧ください。

OpenSSL の確認・更新コマンド早見表

先に、バージョン確認と更新でよく使うコマンドをまとめておきます。

Ubuntu(apt 系)、現行の Amazon Linux 2023(dnf 系)、サポート終了した Amazon Linux 2(yum 系)で分けています。

目的コマンド
バージョン確認(共通)openssl version
パッケージ確認(Ubuntu)apt show openssl
更新(Ubuntu)sudo apt update && sudo apt install --only-upgrade openssl
パッケージ確認(Amazon Linux 2023)dnf info openssl
更新(Amazon Linux 2023)sudo dnf update openssl
パッケージ確認(Amazon Linux 2 ※EOL)yum info openssl
更新(Amazon Linux 2 ※EOL)sudo yum update openssl
※表は横スクロールできます

ただし Amazon Linux 2 では、openssl(1.0.2 系)とは別に openssl11(1.1.1 系)というパッケージが用意されている点に注意が必要です。

この 「本体とは別パッケージ」という Amazon Linux 2 特有のクセは、Amazon Linux 2023 にはありません(標準の openssl が最初から 3 系のため)。

ここからは、実際に脆弱性対応で確認していったときの流れを詳しく見ていきます。

OpenSSLの脆弱性について

冒頭でも脆弱性の内容に触れましたが、今回は深刻度「中」レベルまでのもの。

JVN(Japan Vulnerability Notes)のサイトで詳しく紹介されています。

対応版のソースコードは既に配信されていますが、yum や apt などパッケージ管理の状況はどうでしょうか。

サポートが切れているディストリビューションは要注意ですね。

ubuntuのOpenSSLのバージョン

さて、ubuntu18.04 の openssl のバージョンを確認してみます。

1.1.1 だと古そうですね。
(2018 年 9 月とのこと)

$ openssl version

OpenSSL 1.1.1  11 Sep 2018

パッケージの詳細は以下の通り。

1.1.1 にパッチが当たってる可能性があるので、細かい「1ubuntu2.1~18.04.17」の内容まで把握しておくべきでしょうか。

「apt upgrade openssl」しても最新のパッケージと言われますし。

$ apt show openssl

Package: openssl
Version: 1.1.1-1ubuntu2.1~18.04.17

ubuntu の公式サイトで今回のセキュリティ問題についての情報を確認してみましょう。

以下の内容から、ubuntu18.04 の openssl のパッケージバージョンは問題なさそうですね。

The problem can be corrected by updating your system to the following package versions

システムの再起動が必要という情報が気になるところですが、その前にパッケージがいつの間にか最新になってるのも疑問です。

After a standard system update you need to reboot your computer to make all the necessary changes.

ubuntuの自動アップデート

ということで、パッケージの自動更新が有効になっていないか調べてみると・・・。

$ cat /etc/apt/apt.conf.d/20auto-upgrades

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Update-Package-Lists の値が「1」の場合はデイリー(毎日)という設定。

何日おきに確認するかを決める値のようですが、単純に「daily」とか「weekly」にしてくれたらいいのに。

Unattended-Upgrade の値が「1」の場合は、自動更新が有効ということなんですね。

Update-Package-Lists: パッケージリストの自動更新頻度
Unattended-Upgrade: パッケージの自動更新有無

確かにログを漁ってみると、自動更新された時のログが見つかりました。

$ cat /var/log/unattended-upgrades/unattended-upgrades-dpkg.log

Preparing to unpack .../openssl_1.1.1-1ubuntu2.1~18.04.17_amd64.deb ...
Unpacking openssl (1.1.1-1ubuntu2.1~18.04.17) over (1.1.1-1ubuntu2.1~18.04.15) ...
Setting up openssl (1.1.1-1ubuntu2.1~18.04.17) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...

問題はシステムのリブートについてですが、これも ubuntu 側で管理できるようですね。

$ cat /etc/apt/apt.conf.d/50unattended-upgrades

(一部抜粋)

// Automatically reboot *WITHOUT CONFIRMATION*
//  if the file /var/run/reboot-required is found after the upgrade 
//Unattended-Upgrade::Automatic-Reboot "false";

// If automatic reboot is enabled and needed, reboot at the specific
// time instead of immediately
//  Default: "now"
//Unattended-Upgrade::Automatic-Reboot-Time "02:00";

以下の 2 つの値を確認して、自動再起動がオフならリブートした方がいいのかな。

Unattended-Upgrade::Automatic-Reboot
Unattended-Upgrade::Automatic-Reboot-Time

リブートしても特に変化はありませんでした。

AmazonLinux2のOpenSSL

AmazonLinux もサクっと確認しておきましょうか。

yum は自動でアップデートされるイメージがないので、あったとしてもデフォルトはオフなんでしょう。

AmazonLinux の yum パッケージは 2022 年 5 月 17 日時点でまだ更新されてなさそう。

AmazonLinux2 も同様なのかなってことでバージョン確認から。

$ openssl version

OpenSSL 1.0.2k-fips  26 Jan 2017

パッケージの詳細を見ても「1.0.2k」以外の情報は出てこないですね。

1.0.2 系は 1.0.2ze 以上が求められているので更新が必要そう。

$ yum info openssl

Name        : openssl
Arch        : x86_64
Epoch       : 1
Version     : 1.0.2k
Release     : 24.amzn2.0.2

ただ、「yum update openssl」しても最新のパッケージと言われます。

よくよく見ると、openssl11 なんてパッケージがあるじゃないですか。

$ yum info openssl11

Available Packages
Name        : openssl11
Arch        : x86_64
Epoch       : 1
Version     : 1.1.1g
Release     : 12.amzn2.0.7

「Available Packages」なのでインストールはされてないけど、このパッケージだと 1.1.1g になるわけですね。

どちらにしても今回の脆弱性の問題は解決しない模様。

AmazonLinux は様子見で。

Amazon Linux 2023 での確認・更新(現行)

ここまでは 2022 年当時の Amazon Linux 2 での話でしたが、Amazon Linux 2 は 2026 年 6 月 30 日でサポート終了(EOL)しています。

これから OpenSSL の脆弱性に対応するなら、現行の Amazon Linux 2023 が前提になります。

Amazon Linux 2 との違いで、押さえておくべき点は 2 つです。

  • パッケージマネージャが dnf になったyum の後継。AL2023 の標準ツール)
  • OpenSSL は 3 系が標準(AL2 のように openssl11 を別途入れる必要がない)

確認と更新の流れは、コマンドが変わるだけで考え方は同じです。

# バージョン確認(共通)
$ openssl version

# パッケージの詳細を確認
$ dnf info openssl

# 更新があるかだけ調べる
$ dnf check-update openssl

# 更新する
$ sudo dnf update openssl

なお AL2023 は、パッケージの更新を「起動するたびに勝手に最新化する」のではなく、指定したバージョンで固定する(決定論的アップグレード)という設計になっています。

そのため「放っておけば直っている」とは限らない点は、脆弱性対応では特に意識しておきたいところです。

まとめ

Ubuntu と Amazon Linux における OpenSSL のバージョン確認と更新について紹介してきました。

Ubuntu は公式のセキュリティ通知(USN)が早く、しかも unattended-upgrades で気づかないうちに更新が当たっていることもあります。

一方の Amazon Linux 2 は、opensslopenssl11 が分かれているなど独特のクセがありましたが、2026 年 6 月 30 日にサポート終了しました。

まだ AL2 で動いているサーバーがあるなら、OpenSSL の更新以前に Amazon Linux 2023 への移行そのものが最優先です。

EOL 後は新しい脆弱性が見つかってもパッケージ更新が提供されないため、yum update で解決できる問題ではなくなります。

証明書ファイルの中身を確認したいときは、p12(pkcs12) 形式の証明書を openssl / keytool で確認する方法も参考になります。

あわせて読みたい
p12(pkcs12)形式の証明書の有効期限をkeytoolとopensslで確認する
p12(pkcs12)形式の証明書の有効期限をkeytoolとopensslで確認する
ABOUT ME
saratoga
saratoga
フリーランスエンジニア
仕事にも趣味にも IT を駆使するフリーランスエンジニア。技術的な TIPS や日々の生活の中で深堀りしてみたくなったことを備忘録として残していきます。
記事URLをコピーしました