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