Translated message

A translation of this page exists in English.

RHEL8 で SSL/TLS を使用して Apache/mod_ssl をセキュリティー保護する

更新 -

openssl を使用する Apache (httpd-2.4.37)、mod_ssl (mod_ssl-2.4.37) をセキュリティー保護します。

この記事は、Securing Applications Collection を抜粋したものです。

RHEL8 での暗号化

RHEL8 には、マシンの暗号化のデフォルトを一元化するための新しいメカニズムがあります。
これは crypto-policies パッケージによって処理されます。この根拠と更新ポリシーの詳細については、他のドキュメントを参照してください。

Apache で使用されるプロトコルまたは暗号を制限または緩和するという非常に具体的な要件がない限り、システム全体の暗号化ポリシーを強くお勧めします。

設定ファイル

   /etc/httpd/conf.d/ssl.conf

システム全体の暗号化ポリシーを使用した省略形

特定のカスタマイズが必要な唯一の項目は、適切な証明書の場所です。

    SSLCertificateKeyFile /etc/pki/tls/private/httpd.key
    SSLCertificateFile /etc/pki/tls/certs/httpd.dh.crt
    SSLCertificateChainFile /etc/pki/tls/certs/httpd-chain.crt

カスタム設定の省略形

crypto-policy の デフォルト に相当します。

SSLCertificateKeyFile /etc/pki/tls/private/httpd.key
SSLCertificateFile /etc/pki/tls/certs/httpd.dh.crt
SSLCertificateChainFile /etc/pki/tls/certs/httpd-chain.crt

SSLProtocol all -TLS1 -TLSv1.1
SSLCipherSuite @SECLEVEL=2:kEECDH:kRSA:kEDH:kPSK:kDHEPSK:kECDHEPSK:-aDSS:-3DES:!DES:!RC4:!RC2:!IDEA:-SEED:!eNULL:!aNULL:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8

プロトコル

    SSLProtocol all -TLSv1 -TLSv1.1

一般的な互換性を提供します。

より高いセキュリティー、互換性の低いプロトコル

SSLProtocol All -TLSv1 -TLSv1.1 -TLSv1.2

古い ブラウザーとの互換性 向けに TLSv1.0 を有効化する

SSLProtocol all

暗号化

    SSLCipherSuite @SECLEVEL=2:kEECDH:kRSA:kEDH:kPSK:kDHEPSK:kECDHEPSK:-aDSS:-3DES:!DES:!RC4:!RC2:!IDEA:-SEED:!eNULL:!aNULL:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8

強力な暗号を合理的に選択します。

より高いセキュリティー、互換性の低いプロトコル

SSLCipherSuite @SECLEVEL=3:kEECDH:kEDH:kPSK:kDHEPSK:kECDHEPSK:-kRSA:-aDSS:-AES128:-SHA256:-3DES:!DES:!RC4:!RC2:!IDEA:-SEED:!eNULL:!aNULL:-SHA1:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8

古い ブラウザーとの互換性 向けにレガシー暗号化を有効化する

SSLCipherSuite @SECLEVEL=1:kEECDH:kRSA:kEDH:kPSK:kDHEPSK:kECDHEPSK:!DES:!RC2:!IDEA:-SEED:!eNULL:!aNULL:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8

非常に古いブラウザーを許可します。

証明書処理

Apache は、キーと証明書用に個別の PEM 形式のファイルを想定し、CA チェーン用に別のファイルを想定しています。

キーファイル

SSLCertificateKeyFile /etc/pki/tls/private/httpd.key

キーファイルは、root ユーザーのみが読み取り可能である必要があります。

証明書ファイル

SSLCertificateFile /etc/pki/tls/certs/httpd.dh.crt

SSLCertificateFile には、PFS を有効にするための Diffie-Helman パラメーターを含めることができるため、追加のファイルのペアを維持する必要があります。
実際の証明書は、以下の場所に配置する必要があります。

/etc/pki/tls/certs/httpd.crt

続いて、以下を実行して結合ファイルを作成する必要があります。
次に、このシーケンスを定期的 (毎週) に実行して DH パラメーターを更新し、続いてサービスをリロードする必要があります。

openssl dhparam -out /etc/pki/tls/private/httpd.dh.param.tmp 4096
mv /etc/pki/tls/private/httpd.dh.param.tmp  /etc/pki/tls/private/httpd.dh.param
cat /etc/pki/tls/certs/httpd.crt /etc/pki/tls/private/httpd.dh.param >/etc/pki/tls/certs/httpd.dh.crt
systemctl reload httpd

認証局チェーン

SSLCertificateChainFile /etc/pki/tls/certs/httpd-chain.crt

SSLCertificateFile の中間証明書とルート証明書

Comments