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

サーバーを運用していると、「OpenSSLのバージョンを確認してください」と言われることがありますよね。
でも、なぜOpenSSLのバージョンを知る必要があるのでしょうか?
OpenSSLって何をするソフトウェア?
OpenSSLは、インターネット上で安全に通信するための暗号化ライブラリです。
簡単に言うと、「データを盗み見されないように守る仕組み」を提供してくれます。
OpenSSLが使われている場面:
- HTTPS通信:ウェブサイトを安全に閲覧する時
- メール送受信:SMTPSやIMAPS、POP3Sでの暗号化
- SSH接続:サーバーにログインする時
- VPN接続:リモートアクセスの暗号化
- 証明書の管理:SSL/TLS証明書の作成や確認
ほとんどのインターネット通信で、裏側でOpenSSLが活躍しているんです。
バージョン確認が必要な理由
OpenSSLのバージョンを確認する理由は、主にセキュリティ対策です。
重要なポイント:
- 脆弱性への対応:古いバージョンには深刻なセキュリティホールがある
- 互換性の確認:アプリケーションが要求するバージョンを満たしているか
- サポート状況の把握:サポートが切れたバージョンを使っていないか
- トラブルシューティング:問題が起きた時の原因調査
特に、過去には「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:セキュリティアドバイザリIDImportant/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のバージョン確認は、サーバーセキュリティの基本中の基本です。
少なくとも月に一度は以下をチェックする習慣をつけましょう:
- 現在のバージョンを確認
- セキュリティアップデートの有無を確認
- 必要に応じて更新
- 関連サービスの再起動
特に、セキュリティアドバイザリが公開された時は、すぐに自分のシステムを確認してください。
今すぐできること:
openssl versionで現在のバージョンを確認dnf updateinfo list --security | grep opensslでアップデートを確認- 古いバージョンなら、すぐに更新を検討
サーバーを安全に運用するために、OpenSSLの状態を常に把握しておきましょう!


コメント