web-dev-qa-db-ja.com

TLS 1.0、1.1、および1.2をサポートするためのApacheのSSLCipherSuite設定

単一のIPアドレスを使用して複数のドメイン名を実行しているApache 2.4.7 Webサーバーがあります。 Poodleの脆弱性の結果として、次のSSLCipherSuite行を追加しました。しばらくは問題なく動作しましたが、ユーザーはFirefoxでのページへのアクセスに関する問題を報告しています。残念ながらユーザーにブラウザーの切り替えを依頼することはできないため、TLS 1.0、1.1、および1.2をサポートするように設定を変更する必要があります。

現在の設定は次のとおりです。

<VirtualHost ZYX.XYZ.org:443>
DocumentRoot /var/www/ZYX.XYZ/www
ServerName ZYX.XYZ.org

<Directory "/var/www/ZYX.XYZ/">
  allow from all
  Options -Indexes
</Directory>

SSLEngine on
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-SSLv3:-EXP:!kEDH
SSLCertificateFile /etc/Apache2/ssl/XYZ.org.crt
SSLCertificateKeyFile /etc/Apache2/ssl/XYZ.org.key
SSLCACertificateFile /etc/Apache2/ssl/Gd_bundle-g2-g1.crt
</VirtualHost>

Qualys 'test を見ると、サーバーがTLS 1.2のみをサポートしていることがわかります。

TLS 1.0、TLS 1.1、およびTLS 1.2を有効にして、サイトが古いブラウザーをサポートし、適切なレベルのセキュリティを維持できるようにするための適切な設定は何ですか?

8
Kristian

以下の構成は、SSLLabsによると、最良の構成です(または使用されていました)。

SSLProtocol +TLSv1.2 +TLSv1.1 +TLSv1
SSLCompression off
SSLHonorCipherOrder on
SSLCipherSuite "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA"

ただし、PFSおよびRC4以外の暗号スイートがないため、すべての古いブラウザー(Opera Mini!)を含む)は除外されます。次のコードを(最後の引用符の前に)追加できます。 RC4へのフォールバック(最後のエントリ)を含め、RC4を有効にするなしPFS:

:ECDHE-ECDSA-RC4-SHA:ECDHE-RSA-RC4-SHA:ECDH-ECDSA-RC4-SHA:ECDH-RSA-RC4-SHA:RC4-SHA

できるだけ早くアップグレードすることをユーザーに推奨する必要があります。 RC4は壊れているため、特にPFSなしで使用することはできません。

より良い成績を達成するには、HSTSヘッダーも送信します(これを機能させるには、mod_headerを有効にする必要があります)。

Header always set Strict-Transport-Security "max-age=63072000;"

この構成は、楕円曲線暗号化をサポートしていないため、Apache <2.2.26では機能しません。

更新
チェックしただけで、それでもA +に適しています。 :)ただし、これにはSHA256の証明書が必要だと思います。

2015年10月更新
最近、Mozillaが提供する SSL構成用の別のジェネレーター を見つけました。 Chrome=は、廃止された暗号スイートを使用しているとは言わないように、暗号を順序付けます。

13
Daniel B

私はこの推奨事項を Cipherli.st で見つけました:

SSLCipherSuite AES128+EECDH:AES128+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off 
SSLUseStapling on 
SSLStaplingCache "shmcb:logs/stapling-cache(150000)" 
3
Kristian
 SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-SSLv3:-EXP:!kEDH
                                                           ^^^^^^^^

SSLv3暗号スイートを無効にすると、SSL3.0で導入されたすべての暗号スイートが無効になります。これらの暗号スイートは以降のSSLバージョン(TLS1.0 +)でも使用され、新しい暗号スイートは主にTLS1.2で導入されたため、共有暗号がないため、この設定によりTLS1.0およびTLS1.1は使用できなくなります。したがって、プロトコルは事実上TLS1.2に制限されます。

表示される暗号文字列を使用してopenssl ciphers -V <cipher>を呼び出す場合、使用可能なすべての暗号にはTLS1.2が必要です。

例:openssl ciphers -V TLSv1.2

3
Steffen Ullrich

Apache 2.4 config のSSLOpenSSLConfCmdディレクティブを参照してください。

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

0
James B