CentOS7のApacheとOpenSSL最新版アップデート

当サーバ(CentOS7)のApacheとOpenSSLを最新安定板にアップデート

◆最新安定バージョン

OpenSSLの最新バージョンは2024.1.30にリリースされています。
前回アップデート「CentOS7のApacheとOpenSSLのアップデート」した3.1シリーズも3.1.5がありますが、サポート期間が2025.3.14までであり、より期間が2025.11.23までと長い3.2.1にアップデートします。

Apache:2.4.57 ⇒ 2.4.58
OpenSSL:3.1.2 ⇒ 3.2.1

※環境によって、影響を受ける可能性のあるアプリケーションやサービスがあるため、実施に当たっては互換性等を確認の上、自己責任でお願いします。

◆OpenSSLのバージョンアップ

最新バージョンを確認し、ダウンロードとインストールを実施します。

# wget https://www.openssl.org/source/openssl-3.2.1.tar.gz
# tar zxvf openssl-3.2.1.tar.gz
# cd openssl-3.2.1/
# ./Configure --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
# make
# make install

1行目:最新安定バージョン3.2.1(2024.2.18現在)のダウンロード
2行目:ダウンロードファイルの展開
3行目:展開ディレクトリへ移動
4行目:configureの実行
5行目:コンパイル
6行目:インストール

# ll /usr/local/openssl
合計 68
drwxr-xr-x 2 root root  4096  2月 18 18:31 bin
drwxr-xr-x 2 root root  4096  6月 18  2023 certs
-rw-r--r-- 1 root root   412  6月 18  2023 ct_log_list.cnf
-rw-r--r-- 1 root root   412  2月 18 18:31 ct_log_list.cnf.dist
drwxr-xr-x 3 root root  4096  6月 18  2023 include
drwxr-xr-x 5 root root  4096  2月 18 18:31 lib64
drwxr-xr-x 4 root root  4096  6月 18  2023 lib_1.1_org
drwxr-xr-x 2 root root  4096  2月 18 18:31 misc
-rw-r--r-- 1 root root 10909  6月 18  2023 openssl.cnf
-rw-r--r-- 1 root root 12328  2月 18 18:31 openssl.cnf.dist
drwxr-xr-x 2 root root  4096  6月 18  2023 private
drwxr-xr-x 4 root root  4096  6月 18  2023 share

1行目:インストールしたディレクトリの確認
8行目:バージョン3.1.2のライブラリディレクトリ
9行目:前回アップデート時にリネームしたバージョン1.1.1uのライブラリディレクトリ

# ll /usr/local/openssl/lib64/
合計 18096
drwxr-xr-x 2 root root    4096  2月 18 18:31 engines-3
-rw-r--r-- 1 root root 9984474  2月 18 18:31 libcrypto.a
lrwxrwxrwx 1 root root      14  2月 18 18:31 libcrypto.so -> libcrypto.so.3
-rwxr-xr-x 1 root root 5540744  2月 18 18:31 libcrypto.so.3
-rw-r--r-- 1 root root 1830488  2月 18 18:31 libssl.a
lrwxrwxrwx 1 root root      11  2月 18 18:31 libssl.so -> libssl.so.3
-rwxr-xr-x 1 root root 1121304  2月 18 18:31 libssl.so.3
drwxr-xr-x 2 root root    4096  2月 18 18:31 ossl-modules
drwxr-xr-x 2 root root    4096  8月  6  2023 pkgconfig

1行目:ライブラリディレクトリの確認

# openssl version
OpenSSL 3.2.1 30 Jan 2024 (Library: OpenSSL 3.2.1 30 Jan 2024)

1行目:インストールしたOpenSSLのバージョン確認
2行目:バージョン「3.2.1」を表示

◆Apacheのアップデート

過去記事「CentOS7のTLS1.3対応とApacheへの適用」で実施した要領と同様に「mod_ssl」モジュールのみ入れ替えます。

# mv /etc/httpd/modules/mod_ssl.so /etc/httpd/modules/mod_ssl.so_3.1_org

1行目:バージョン3.1.2の「mod_ssl」モジュールをリネームしてバックアップ
※Apacheをアップデートした際に上書きされてしまいます。

モジュールに変更がなければ、ここでバックアップした「mod_ssl」モジュールをApacheのyumアップデート後にコピーやリネームすることで以降の作業はいらないかもしれません。

# wget https://dlcdn.apache.org/httpd/httpd-2.4.58.tar.gz
# tar zxvf httpd-2.4.58.tar.gz
# cd httpd-2.4.58/
# ./configure --with-ssl=/usr/local/openssl
# make

1行目:Apacheのソースファイルをダウンロード
2行目:ダウンロードファイルの展開
3行目:展開ディレクトリへ移動
4行目:configureの実行。「–with-ssl」オプションでOpenSSLのインストールディレクトリを指定
5行目:コンパイル

「mod_ssl」モジュールだけ必要なので、「make install」は実行しません。

# readelf -d modules/ssl/.libs/mod_ssl.so

Dynamic section at offset 0x4dd48 contains 29 entries:
 タグ        タイプ                       名前/値
 0x0000000000000001 (NEEDED)             共有ライブラリ: [libssl.so.3]
 0x0000000000000001 (NEEDED)             共有ライブラリ: [libcrypto.so.3]
 0x0000000000000001 (NEEDED)             共有ライブラリ: [libpthread.so.0]
 0x0000000000000001 (NEEDED)             共有ライブラリ: [libdl.so.2]
 0x0000000000000001 (NEEDED)             共有ライブラリ: [libc.so.6]
 0x000000000000000e (SONAME)             ライブラリの soname: [mod_ssl.so]

1行目:「readelf」コマンドで「mod_ssl」のヘッダ情報を確認
5,6行目:共有ライブラリのバージョンがインストールしたOpenSSLのバージョン(3)になっているのを確認

過去記事「CentOS7のApache最新版アップデート」で実施したIUSリポジトリを使用し、アップデートします。

# yum update --enablerepo=ius httpd

1行目:IUSリポジトリを有効にしてyumでアップデート

# httpd -v
Server version: Apache/2.4.58 (IUS)
Server built:   Oct 26 2023 16:56:39

1行目:Apacheのバージョンの確認
2行目:バージョン「2.4.58」を表示

アップデートでインストールされた「mod_ssl」を確認してみます。

# readelf -d /etc/httpd/modules/mod_ssl.so

Dynamic section at offset 0x39ce0 contains 31 entries:
 タグ        タイプ                       名前/値
 0x0000000000000001 (NEEDED)             共有ライブラリ: [libssl.so.10]
 0x0000000000000001 (NEEDED)             共有ライブラリ: [libcrypto.so.10]
 0x0000000000000001 (NEEDED)             共有ライブラリ: [libpthread.so.0]
 0x0000000000000001 (NEEDED)             共有ライブラリ: [libdl.so.2]
 0x0000000000000001 (NEEDED)             共有ライブラリ: [libc.so.6]
 0x000000000000000e (SONAME)             ライブラリの soname: [mod_ssl.so]

1行目:「readelf」コマンドで「mod_ssl」のヘッダ情報を確認
5,6行目:共有ライブラリのバージョンがCentOS7のyumインストールされるOpenSSLのバージョンが1.0シリーズのため(10)になっている

# mv /etc/httpd/modules/mod_ssl.so /etc/httpd/modules/mod_ssl.so_org
# cp modules/ssl/.libs/mod_ssl.so /etc/httpd/modules/

1行目:「mod_ssl」モジュールのバックアップ
2行目:新しい「mod_ssl」モジュールをコピーして設置

# ll /etc/httpd/modules/mod_ssl.so*
-rwxr-xr-x 1 root root 376552  2月 18 20:09 /etc/httpd/modules/mod_ssl.so
-rwxr-xr-x 1 root root 248600  4月  7  2023 /etc/httpd/modules/mod_ssl.so_1.1_org
-rwxr-xr-x 1 root root 376552  8月  6  2023 /etc/httpd/modules/mod_ssl.so_3.1_org
-rwxr-xr-x 1 root root 248632 10月 27 01:57 /etc/httpd/modules/mod_ssl.so_org

1行目:「mod_ssl.so*」でバックアップしたモジュールを含めて確認

# systemctl restart httpd
# systemctl status httpd

1行目:サービスの再起動
2行目:サービスの状態確認

◆確認

前回更新時に同様の確認をしているので、詳細はこちらを参照してください。

TLS checker」でTLS/SSL設定を確認できます。

SSL Labs」では、Webサーバの構成情報を詳細に分析できます。

「デベロッパーツール」で「TLSプロトコルバージョン」と「暗号化スイート」を確認できます。

最近、よくサーバがフリーズするのでこの更新で改善されないかなぁ…
次は、PHPのバージョンアップかな

いいね! & シェア お願いします。

コメントは受け付けていません。