28.7. Apache HTTP サーバーでサポートされる TLS プロトコルバージョンの設定
デフォルトでは、RHEL の Apache HTTP Server は、最新のブラウザーにも互換性のある安全なデフォルト値を定義するシステム全体の暗号化ポリシーを使用します。たとえば、DEFAULT
ポリシーでは、TLSv1.2
および TLSv1.3
プロトコルバージョンのみが Apache で有効になるように定義します。
Apache HTTP Server がサポートする TLS プロトコルのバージョンを手動で設定できます。たとえば、環境が特定の TLS プロトコルバージョンのみを有効にする必要がある場合には、以下の手順に従います。
-
お使いの環境のクライアントで、セキュリティーの低い
TLS1
(TLSv1.0) プロトコルまたはTLS1.1
プロトコルも使用できるようにする必要がある場合。 -
Apache が
TLSv1.2
プロトコルまたはTLSv1.3
プロトコルのみに対応するように設定する場合。
前提条件
- サーバーで TLS 暗号化が有効化されている。
- サーバーが RHEL 9.2 以降を実行し、FIPS モードが有効になっている場合に、クライアントが Extended Master Secret (EMS) 拡張機能をサポートしているか、TLS 1.3 を使用している。EMS を使用しない TLS 1.2 接続は失敗します。詳細は、Red Hat ナレッジベースソリューション TLS extension "Extended Master Secret" enforced を参照してください。
手順
/etc/httpd/conf/httpd.conf
ファイルを編集し、TLS プロトコルバージョンを設定する<VirtualHost>
ディレクティブに以下の設定を追加します。たとえば、TLSv1.3
プロトコルのみを有効にするには、以下を実行します。SSLProtocol -All TLSv1.3
SSLProtocol -All TLSv1.3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow httpd
サービスを再起動します。systemctl restart httpd
# systemctl restart httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
以下のコマンドを使用して、サーバーが
TLSv1.3
に対応していることを確認します。openssl s_client -connect example.com:443 -tls1_3
# openssl s_client -connect example.com:443 -tls1_3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを使用して、サーバーが
TLSv1.2
に対応していないことを確認します。openssl s_client -connect example.com:443 -tls1_2
# openssl s_client -connect example.com:443 -tls1_2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーがプロトコルに対応していない場合には、このコマンドは以下のエラーを返します。
140111600609088:error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:ssl/record/rec_layer_s3.c:1543:SSL alert number 70
140111600609088:error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:ssl/record/rec_layer_s3.c:1543:SSL alert number 70
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - オプション: 他の TLS プロトコルバージョンのコマンドを繰り返し実行します。