AlmaLinuxでOpenSSLのバージョンを確認する完全ガイド|セキュリティ対策に必須の知識

Linux
スポンサーリンク
  1. なぜOpenSSLのバージョン確認が重要なのか
    1. OpenSSLって何をするソフトウェア?
    2. バージョン確認が必要な理由
  2. 最も簡単な確認方法【基本コマンド】
    1. opensslコマンドで確認する
    2. より詳細な情報を表示する
    3. 各情報を個別に確認する
  3. パッケージマネージャーで確認する方法
    1. dnfコマンドで確認
    2. yumコマンドで確認
    3. rpmコマンドで確認(最速)
    4. 関連パッケージも確認する
  4. ライブラリのバージョンを確認する方法
    1. 共有ライブラリの確認
    2. ldconfigで確認
    3. 特定のプログラムが使っているOpenSSLを確認
  5. OpenSSLのセキュリティアップデートを確認する
    1. 利用可能なアップデートの確認
    2. セキュリティアップデートだけを確認
    3. CVE(脆弱性識別子)の確認
    4. 詳細な脆弱性情報を見る
  6. OpenSSLのバージョン履歴と重要な情報
    1. 主要バージョンの特徴
    2. バージョン番号の読み方
    3. 過去の重大な脆弱性
  7. AlmaLinuxのバージョン別OpenSSL
    1. AlmaLinux 8の場合
    2. AlmaLinux 9の場合
    3. システムバージョンの確認
  8. OpenSSLのアップデート方法
    1. 基本的なアップデート手順
    2. 依存関係も含めて更新
    3. 特定のバージョンにダウングレード
    4. サービスの再起動
  9. よくあるトラブルと解決方法
    1. 「openssl: command not found」エラー
    2. バージョンが古すぎる
    3. 「依存関係の問題」エラー
    4. 複数バージョンが混在している
    5. SSL/TLS接続エラー
    6. 証明書の検証エラー
  10. OpenSSLの設定ファイルの場所
    1. 主要な設定ファイル
    2. 証明書と鍵ファイルの場所
    3. プロバイダモジュールの場所(OpenSSL 3.0以降)
  11. コマンドのチートシート
    1. バージョン確認系
    2. セキュリティチェック系
    3. アップデート系
    4. サービス再起動系
    5. 暗号化方式の確認
  12. OpenSSLの動作確認テスト
    1. SSL/TLS接続のテスト
    2. 自己署名証明書の作成テスト
    3. 暗号化・復号化のテスト
  13. まとめ:定期的なOpenSSL確認でセキュリティを守ろう

なぜOpenSSLのバージョン確認が重要なのか

サーバーを運用していると、「OpenSSLのバージョンを確認してください」と言われることがありますよね。

でも、なぜOpenSSLのバージョンを知る必要があるのでしょうか?

OpenSSLって何をするソフトウェア?

OpenSSLは、インターネット上で安全に通信するための暗号化ライブラリです。
簡単に言うと、「データを盗み見されないように守る仕組み」を提供してくれます。

OpenSSLが使われている場面:

  • HTTPS通信:ウェブサイトを安全に閲覧する時
  • メール送受信:SMTPSやIMAPS、POP3Sでの暗号化
  • SSH接続:サーバーにログインする時
  • VPN接続:リモートアクセスの暗号化
  • 証明書の管理:SSL/TLS証明書の作成や確認

ほとんどのインターネット通信で、裏側でOpenSSLが活躍しているんです。

バージョン確認が必要な理由

OpenSSLのバージョンを確認する理由は、主にセキュリティ対策です。

重要なポイント:

  1. 脆弱性への対応:古いバージョンには深刻なセキュリティホールがある
  2. 互換性の確認:アプリケーションが要求するバージョンを満たしているか
  3. サポート状況の把握:サポートが切れたバージョンを使っていないか
  4. トラブルシューティング:問題が起きた時の原因調査

特に、過去には「Heartbleed」や「POODLE」といった深刻な脆弱性が発見されています。
定期的にバージョンを確認して、最新の状態を保つことが大切なんです。


最も簡単な確認方法【基本コマンド】

それでは、実際にOpenSSLのバージョンを確認してみましょう。

opensslコマンドで確認する

最もシンプルで確実な方法がこちらです。

openssl version

実行結果の例:

OpenSSL 3.0.7 1 Nov 2022 (Library: OpenSSL 3.0.7 1 Nov 2022)

表示される情報:

  • OpenSSL 3.0.7:バージョン番号(メジャー.マイナー.パッチ)
  • 1 Nov 2022:リリース日
  • (Library: ...):実際に使用されているライブラリのバージョン

たった1行のコマンドで、必要な情報が分かりますね!

より詳細な情報を表示する

もっと詳しい情報を知りたい場合は、オプションを追加します。

openssl version -a

実行結果の例:

OpenSSL 3.0.7 1 Nov 2022 (Library: OpenSSL 3.0.7 1 Nov 2022)
built on: Tue Oct  4 00:00:00 2022 UTC
platform: linux-x86_64
options:  bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O2
OPENSSLDIR: "/etc/pki/tls"
ENGINESDIR: "/usr/lib64/engines-3"
MODULESDIR: "/usr/lib64/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_ia32cap=0xfeda32235f8bffff:0x40069c219c97a9

このコマンドで分かること:

  • built on:ビルドされた日時
  • platform:プラットフォーム情報
  • compiler:コンパイルに使われたコンパイラ
  • OPENSSLDIR:OpenSSLの設定ファイルがある場所
  • ENGINESDIR:エンジンモジュールの場所
  • MODULESDIR:プロバイダモジュールの場所

トラブルシューティングや詳細な環境調査の時に役立ちます。

各情報を個別に確認する

特定の情報だけを表示することもできますよ。

# バージョン番号のみ
openssl version -v

# ビルド日時
openssl version -b

# 設定ディレクトリ
openssl version -d

# エンジンディレクトリ
openssl version -e

# コンパイラ情報
openssl version -f

必要な情報だけをピンポイントで取得できて便利です。


パッケージマネージャーで確認する方法

AlmaLinuxのパッケージマネージャーを使った確認方法も見ていきましょう。

dnfコマンドで確認

AlmaLinux 8以降では、dnfが標準のパッケージマネージャーです。

dnf info openssl

実行結果の例:

インストール済みパッケージ
名前         : openssl
エポック     : 1
バージョン   : 3.0.7
リリース     : 25.el9
アーキテクチャ: x86_64
サイズ       : 1.2 M
ソース       : openssl-3.0.7-25.el9.src.rpm
リポジトリー : @System
提供元リポジトリー: baseos
要約         : Utilities from the general purpose cryptography library
URL          : https://www.openssl.org/
ライセンス   : ASL 2.0
説明         : The OpenSSL toolkit provides support for secure communications
             : between machines.

表示される主な情報:

  • バージョン番号とリリース番号
  • インストール元のリポジトリ
  • パッケージサイズ
  • ライセンス情報
  • 公式URL

yumコマンドで確認

従来のyumコマンドでも確認できます。

yum info openssl

AlmaLinuxでは、yumはdnfへのエイリアス(別名)になっているため、結果は同じです。

rpmコマンドで確認(最速)

もっとシンプルに、インストールされているバージョンだけを知りたい場合:

rpm -q openssl

実行結果の例:

openssl-3.0.7-25.el9.x86_64

この方法が最も速く、スクリプトでの使用にも適しています。

関連パッケージも確認する

OpenSSL関連のすべてのパッケージを確認:

rpm -qa | grep openssl

実行結果の例:

openssl-3.0.7-25.el9.x86_64
openssl-libs-3.0.7-25.el9.x86_64
openssl-devel-3.0.7-25.el9.x86_64

主な関連パッケージ:

  • openssl:コマンドラインツール
  • openssl-libs:共有ライブラリ
  • openssl-devel:開発用ヘッダーファイル
  • openssl-perl:Perlモジュール

開発環境を構築する時は、これらの情報が役立ちますよ。


ライブラリのバージョンを確認する方法

実は、opensslコマンドのバージョンシステムライブラリのバージョンが異なる場合があります。

共有ライブラリの確認

システムにインストールされている共有ライブラリを確認:

ls -l /usr/lib64/libssl.so*

実行結果の例:

lrwxrwxrwx. 1 root root    15  9月 20 10:30 libssl.so.3 -> libssl.so.3.0.7
-rwxr-xr-x. 1 root root 547K  8月 10 15:20 libssl.so.3.0.7

この例では、OpenSSL 3.0.7のライブラリが使われていることが分かります。

ldconfigで確認

動的リンカの情報から確認する方法:

ldconfig -v 2>/dev/null | grep libssl

実行結果の例:

        libssl.so.3 -> libssl.so.3.0.7

特定のプログラムが使っているOpenSSLを確認

例えば、Apacheが使っているOpenSSLのバージョンを調べたい場合:

ldd /usr/sbin/httpd | grep libssl

実行結果の例:

        libssl.so.3 => /lib64/libssl.so.3 (0x00007f8c4e200000)

これで、実際にアプリケーションがどのバージョンを使っているか確認できます。


OpenSSLのセキュリティアップデートを確認する

バージョンが分かったら、セキュリティ面もチェックしましょう。

利用可能なアップデートの確認

アップデート可能なバージョンがあるかチェック:

dnf check-update openssl

結果の見方:

  • 何も表示されない:最新版を使用中
  • パッケージ情報が表示される:アップデート可能

セキュリティアップデートだけを確認

セキュリティ関連のアップデートのみを表示:

dnf updateinfo list --security

OpenSSL関連だけに絞り込む:

dnf updateinfo list --security | grep openssl

実行結果の例:

ALSA-2023:4536 Important/Sec. openssl-3.0.7-25.el9.x86_64

表示の意味:

  • ALSA-2023:4536:セキュリティアドバイザリID
  • Important/Sec.:重要度(Critical、Important、Moderate、Low)
  • パッケージ名とバージョン

CVE(脆弱性識別子)の確認

特定のCVEが修正されているか確認:

dnf updateinfo list --cve CVE-2023-XXXXX

実際のCVE番号を入れると、該当するアップデートが表示されます。

詳細な脆弱性情報を見る

もっと詳しい情報が必要な場合:

dnf updateinfo info ALSA-2023:4536

表示される情報:

  • 影響の詳細
  • 修正内容
  • 関連するCVE番号
  • 推奨される対応

定期的にチェックする習慣をつけると安心ですね。


OpenSSLのバージョン履歴と重要な情報

OpenSSLには長い歴史があり、いくつかの重要なバージョンがあります。

主要バージョンの特徴

OpenSSL 1.0.x系(旧バージョン)

  • 2023年でサポート終了
  • 使用は非推奨
  • 深刻な脆弱性が多数

OpenSSL 1.1.1系(LTS版)

  • 長期サポート版(Long Term Support)
  • 2023年9月でサポート終了
  • TLS 1.3に対応
  • AlmaLinux 8で使用される場合がある

OpenSSL 3.0.x系(現行版)

  • 2021年9月リリース
  • 2026年9月までサポート予定
  • AlmaLinux 9の標準
  • プロバイダアーキテクチャの導入

OpenSSL 3.1.x系、3.2.x系(最新)

  • より新しい機能と改善
  • セキュリティ強化

バージョン番号の読み方

OpenSSLのバージョン番号は、以下の形式です:

メジャー.マイナー.パッチ (例:3.0.7)

各数字の意味:

  • メジャー:大きな仕様変更、互換性が失われる可能性
  • マイナー:新機能の追加、基本的に互換性あり
  • パッチ:バグ修正やセキュリティ修正

同じメジャーバージョン内では、できるだけ最新のパッチバージョンを使うべきです。

過去の重大な脆弱性

知っておくべき主要な脆弱性:

Heartbleed(CVE-2014-0160)

  • OpenSSL 1.0.1~1.0.1fに存在
  • メモリ内容を読み取られる深刻な脆弱性
  • 影響範囲が極めて広かった

POODLE(CVE-2014-3566)

  • SSLv3プロトコルの脆弱性
  • OpenSSL 1.0.1j以降で対策

DROWN(CVE-2016-0800)

  • SSLv2の脆弱性
  • OpenSSL 1.0.2g、1.0.1sで修正

これらの脆弱性があったバージョンは、今では使用すべきではありません。


AlmaLinuxのバージョン別OpenSSL

AlmaLinuxのメジャーバージョンによって、標準のOpenSSLが異なります。

AlmaLinux 8の場合

標準のOpenSSL:

OpenSSL 1.1.1系

バージョン確認:

cat /etc/almalinux-release
openssl version

特徴:

  • RHEL 8互換
  • 長期サポート版を使用
  • 安定性重視

AlmaLinux 9の場合

標準のOpenSSL:

OpenSSL 3.0.x系

バージョン確認:

cat /etc/almalinux-release
openssl version

特徴:

  • RHEL 9互換
  • 最新の暗号化技術に対応
  • プロバイダアーキテクチャ採用

システムバージョンの確認

自分のAlmaLinuxのバージョンを確認:

cat /etc/almalinux-release

または:

cat /etc/redhat-release

実行結果の例:

AlmaLinux release 9.3 (Shamrock Pampas Cat)

システムのバージョンに応じて、適切なOpenSSLが提供されています。


OpenSSLのアップデート方法

バージョンを確認して、更新が必要だと分かったら…
実際にアップデートしてみましょう。

基本的なアップデート手順

ステップ1:現在のバージョンを記録

openssl version > /tmp/openssl_before.txt

後で比較できるように記録しておきます。

ステップ2:バックアップを取る(重要)

# 証明書や鍵ファイルのバックアップ
sudo tar czf /backup/openssl-backup-$(date +%Y%m%d).tar.gz /etc/pki/tls

ステップ3:アップデートの実行

sudo dnf update openssl

すべての関連パッケージも一緒に更新したい場合:

sudo dnf update openssl\*

ステップ4:更新の確認

openssl version

新しいバージョンが表示されればOKです。

依存関係も含めて更新

OpenSSLを使っているパッケージも一緒に更新:

sudo dnf update

システム全体を最新の状態に保つのが理想的です。

特定のバージョンにダウングレード

何らかの理由で古いバージョンに戻したい場合:

# 利用可能なバージョンを確認
dnf list --showduplicates openssl

# ダウングレード実行
sudo dnf downgrade openssl-3.0.7-25.el9

ただし、セキュリティ上の理由から、ダウングレードは推奨されません。

サービスの再起動

OpenSSLを使っているサービスは再起動が必要です:

# Apache
sudo systemctl restart httpd

# Nginx
sudo systemctl restart nginx

# Postfix(メールサーバー)
sudo systemctl restart postfix

# sshd(通常は再起動不要だが、念のため)
sudo systemctl restart sshd

再起動せずに、新しいバージョンが使われない場合があります。


よくあるトラブルと解決方法

OpenSSLのバージョン確認やアップデートで困った時の対処法です。

「openssl: command not found」エラー

原因: OpenSSLがインストールされていない

解決方法:

# インストールされているか確認
rpm -q openssl

# インストールされていない場合
sudo dnf install openssl

通常はデフォルトでインストールされていますが、最小構成の場合は入っていないことがあります。

バージョンが古すぎる

原因: リポジトリの設定が正しくない、または長期間更新していない

解決方法:

# リポジトリのキャッシュをクリア
sudo dnf clean all

# システム全体を更新
sudo dnf update

# OpenSSL関連パッケージを強制更新
sudo dnf reinstall openssl

「依存関係の問題」エラー

原因: 他のパッケージとのバージョン不整合

解決方法:

# 依存関係を含めて更新
sudo dnf update --best --allowerasing

# または、問題を確認
sudo dnf check

まれに、カスタムリポジトリが原因の場合もあります。

複数バージョンが混在している

原因: 手動でコンパイルしたOpenSSLがある

解決方法:

# すべてのopenssl実行ファイルを探す
which -a openssl

# パッケージ管理されているバージョンを確認
rpm -ql openssl | grep bin

結果例:

/usr/bin/openssl     ← パッケージ版
/usr/local/bin/openssl ← 手動インストール版

PATHの設定で優先度を調整するか、不要な方を削除します。

SSL/TLS接続エラー

原因: 古い暗号化方式を使おうとしている

解決方法:

# サポートされている暗号化方式を確認
openssl ciphers -v

# 特定のプロトコルバージョンを確認
openssl s_client -connect example.com:443 -tls1_2

OpenSSL 3.0以降では、古い暗号化方式がデフォルトで無効になっています。

証明書の検証エラー

原因: CA証明書が古い

解決方法:

# CA証明書パッケージを更新
sudo dnf update ca-certificates

# 証明書ストアを再構築
sudo update-ca-trust

OpenSSLの設定ファイルの場所

バージョン確認と合わせて、設定ファイルの場所も知っておくと便利です。

主要な設定ファイル

OpenSSL設定ファイル:

/etc/pki/tls/openssl.cnf

この設定ファイルで、デフォルトの暗号化方式やポリシーを設定します。

設定ディレクトリの確認:

openssl version -d

実行結果:

OPENSSLDIR: "/etc/pki/tls"

証明書と鍵ファイルの場所

CA証明書:

/etc/pki/tls/certs/

秘密鍵:

/etc/pki/tls/private/

証明書署名要求(CSR):

/etc/pki/tls/certs/

プロバイダモジュールの場所(OpenSSL 3.0以降)

openssl version -m

実行結果:

MODULESDIR: "/usr/lib64/ossl-modules"

ここにプロバイダモジュールが配置されています。


コマンドのチートシート

よく使うコマンドをまとめました。コピーして使ってくださいね!

バージョン確認系

# 基本的なバージョン表示
openssl version

# 詳細情報の表示
openssl version -a

# パッケージ情報
dnf info openssl
yum info openssl
rpm -q openssl

# 共有ライブラリの確認
ls -l /usr/lib64/libssl.so*

# 関連パッケージの一覧
rpm -qa | grep openssl

セキュリティチェック系

# アップデート可能か確認
dnf check-update openssl

# セキュリティアップデートのチェック
dnf updateinfo list --security

# OpenSSL関連のセキュリティ情報
dnf updateinfo list --security | grep openssl

# CVEの確認
dnf updateinfo list --cve CVE-2023-XXXXX

# 詳細情報の表示
dnf updateinfo info ALSA-2023:XXXX

アップデート系

# OpenSSLのアップデート
sudo dnf update openssl

# 関連パッケージも含めて更新
sudo dnf update openssl\*

# システム全体の更新
sudo dnf update

サービス再起動系

# Apache
sudo systemctl restart httpd

# Nginx
sudo systemctl restart nginx

# Postfix
sudo systemctl restart postfix

# SSHサーバー
sudo systemctl restart sshd

暗号化方式の確認

# サポートされている暗号化方式
openssl ciphers -v

# 利用可能なダイジェストアルゴリズム
openssl list -digest-algorithms

# プロバイダの一覧(OpenSSL 3.0以降)
openssl list -providers

OpenSSLの動作確認テスト

バージョン確認だけでなく、実際に動作するか試してみましょう。

SSL/TLS接続のテスト

実際のウェブサイトに接続してテスト:

openssl s_client -connect www.example.com:443 -brief

成功例:

CONNECTION ESTABLISHED
Protocol version: TLSv1.3
Ciphersuite: TLS_AES_256_GCM_SHA384
...

接続が成功すれば、OpenSSLが正常に動作しています。

自己署名証明書の作成テスト

簡単なテストとして、証明書を作ってみます:

openssl req -new -x509 -days 365 -nodes \
  -out /tmp/test.crt -keyout /tmp/test.key \
  -subj "/C=JP/ST=Tokyo/L=Tokyo/O=Test/CN=test.local"

エラーなく作成できれば、OpenSSLが正しくインストールされています。

暗号化・復号化のテスト

簡単なファイル暗号化をテスト:

# テストファイルの作成
echo "Hello OpenSSL" > /tmp/test.txt

# 暗号化
openssl enc -aes-256-cbc -salt -in /tmp/test.txt \
  -out /tmp/test.enc -pass pass:testpassword

# 復号化
openssl enc -aes-256-cbc -d -in /tmp/test.enc \
  -out /tmp/test-decrypted.txt -pass pass:testpassword

# 確認
cat /tmp/test-decrypted.txt

「Hello OpenSSL」と表示されれば、暗号化機能が正常です。


まとめ:定期的なOpenSSL確認でセキュリティを守ろう

この記事では、AlmaLinuxでOpenSSLのバージョンを確認する方法を詳しく解説してきました。

重要なポイントのおさらい:

  • OpenSSLはインターネット通信の安全性を支える重要なソフトウェア
  • 最も簡単な確認方法は openssl version コマンド
  • パッケージマネージャー(dnf/yum/rpm)でも詳細情報が取得できる
  • セキュリティアップデートは定期的にチェックすべき
  • AlmaLinux 8は1.1.1系、AlmaLinux 9は3.0系を使用
  • 古いバージョンには深刻な脆弱性があるため更新が必須
  • アップデート後は関連サービスの再起動を忘れずに

OpenSSLのバージョン確認は、サーバーセキュリティの基本中の基本です。

少なくとも月に一度は以下をチェックする習慣をつけましょう:

  1. 現在のバージョンを確認
  2. セキュリティアップデートの有無を確認
  3. 必要に応じて更新
  4. 関連サービスの再起動

特に、セキュリティアドバイザリが公開された時は、すぐに自分のシステムを確認してください。

今すぐできること:

  • openssl version で現在のバージョンを確認
  • dnf updateinfo list --security | grep openssl でアップデートを確認
  • 古いバージョンなら、すぐに更新を検討

サーバーを安全に運用するために、OpenSSLの状態を常に把握しておきましょう!

コメント

タイトルとURLをコピーしました