当サーバ(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のバージョンアップ
・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」モジュールのみ入れ替えます。
・「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アップデート後にコピーやリネームすることで以降の作業はいらないかもしれません。
・Apacheのパッケージのダウンロードとビルド
# 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」は実行しません。
・「mod_ssl」モジュールの確認
# 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)になっているのを確認
・Apacheのyumアップデート
過去記事「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」モジュールの確認
アップデートでインストールされた「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)になっている
・「mod_ssl」モジュールの設置
# 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」モジュールをコピーして設置
・「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*」でバックアップしたモジュールを含めて確認
・「httpd」サービスの再起動と確認
# systemctl restart httpd # systemctl status httpd
1行目:サービスの再起動
2行目:サービスの状態確認
◆確認
前回更新時に同様の確認をしているので、詳細はこちらを参照してください。
・TLS checker
「TLS checker」でTLS/SSL設定を確認できます。
・SSL Labs
「SSL Labs」では、Webサーバの構成情報を詳細に分析できます。
・ブラウザ(Chrome)での確認
「デベロッパーツール」で「TLSプロトコルバージョン」と「暗号化スイート」を確認できます。
最近、よくサーバがフリーズするのでこの更新で改善されないかなぁ…
次は、PHPのバージョンアップかな