SSLCipherSuite-Einstellungen in Apache zur Unterstützung von TLS 1.0, 1.1 und 1.2

Ich habe einen Apache 2.4.7-Webserver, auf dem mehrere Domainnamen mit einer einzigen IP-Adresse ausgeführt werden. Infolge der Pudelanfälligkeit habe ich die folgende Zeile SSLCipherSuite hinzugefügt. Es hat eine Weile gut funktioniert, aber Benutzer melden Probleme beim Zugriff auf die Seite in Firefox. Die Benutzer zu bitten, den Browser zu wechseln, ist leider keine Option, daher muss ich die Einstellungen ändern, um TLS 1.0, 1.1 und 1.2 zu unterstützen.

Die aktuellen Einstellungen sind: -

<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>

Wenn wir uns ansehen Qualys ' Test, wir sehen, dass der Server nur TLS 1.2 unterstützt.

Was wären die geeigneten Einstellungen für die Aktivierung von TLS 1.0, TLS 1.1 und TLS 1.2, damit die Site ältere Browser unterstützen und auch ein angemessenes Sicherheitsniveau gewährleisten kann?

Author: Kristian, 2015-02-25

4 answers

Die folgende Konfiguration ist (oder war) die beste Konfiguration gemäß 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"

Es werden jedoch alle älteren Browser (einschließlich Opera Mini!), weil es an Nicht-PFS-und RC4-Verschlüsselungssuiten fehlt. Sie können Folgendes (natürlich vor dem Schlusszitat) anhängen, um RC4 zu aktivieren, einschließlich eines Fallbacks (letzter Eintrag) auf RC4 ohne}:

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

Sie sollten Benutzer ermutigen, so schnell wie möglich zu aktualisieren. RC4 ist defekt und sollte nicht mehr verwendet werden, vor allem ohne PFS.

Um bessere Noten zu erzielen, senden Sie auch einen HSTS-Header (damit dies funktioniert, müssen Sie aktivieren mod_header):

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

Diese Konfiguration funktioniert nicht für Apache

Update - :
Gerade überprüft, es ist immer noch gut für A+. :) Ich glaube, dies erfordert jedoch ein Zertifikat mit SHA256.

Update Oktober 2015:
Ich habe kürzlich einen anderen Generator für SSL-Konfigurationen gefunden, bereitgestellt von Mozilla. Es ordnet Chiffren an, damit Chrome nicht angibt, dass Sie eine veraltete Verschlüsselungssuite verwenden.

 13
Author: Daniel B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-10-23 10:45:54

Ich fand diese Empfehlung auf 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
Author: Kristian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-02-27 14:50:55
 SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-SSLv3:-EXP:!kEDH
                                                           ^^^^^^^^

Durch das Deaktivieren von SSLv3 Cipher Suites werden alle mit SSL3.0 eingeführten Cipher Suites deaktiviert. Da diese Verschlüsselungssuiten auch mit späteren SSL-Versionen (TLS1.0+) verwendet werden und neue Verschlüsselungssuiten hauptsächlich mit TLS1.2 eingeführt wurden, sind TLS1.0 und TLS1.1 aufgrund dieser Einstellung nicht verfügbar keine gemeinsam genutzten Chiffren. Somit ist das Protokoll effektiv auf TLS1.2 beschränkt.

Wenn Sie openssl ciphers -V <cipher> mit Ihrer Verschlüsselungszeichenfolge aufrufen würden, würden Sie sehen, dass alle verfügbaren Chiffren TLS1.2 erfordern.

Für Beispiel: openssl ciphers -V TLSv1.2.

 3
Author: Steffen Ullrich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-04-20 21:20:25

Siehe SSLOpenSSLConfCmd Direktive in der [[2]}Apache 2.4 config.

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

 0
Author: James B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-12-14 21:00:42