wake-up-neo.com

SSLCipherSuite-Einstellungen in Apache für die Unterstützung von TLS 1.0, 1.1 und 1.2

Ich besitze einen Apache 2.4.7-Webserver, auf dem mehrere Domainnamen unter einer einzigen IP-Adresse ausgeführt werden. Aufgrund der Pudel-Sicherheitsanfä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 zum Wechseln des Browsers aufzufordern, 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 Qualys 'Test ansehen, sehen wir, dass der Server nur TLS 1.2 unterstützt.

Mit welchen Einstellungen können TLS 1.0, TLS 1.1 und TLS 1.2 aktiviert werden, damit die Site ältere Browser unterstützt und ein angemessenes Sicherheitsniveau aufrechterhält?

8
Kristian

Die folgende Konfiguration ist (oder war früher) 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!) Ausgeschlossen, da es keine Nicht-PFS- und RC4-Cipher-Suites gibt. Sie können Folgendes anhängen (natürlich vor dem Schlusszitat), um RC4 zu aktivieren, einschließlich eines Fallbacks (letzter Eintrag) zu RC4 ohne PFS:

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

Sie sollten Benutzer ermutigen, ein Upgrade so schnell wie möglich durchzuführen. RC4 ist defekt und sollte nicht mehr verwendet werden, insbesondere ohne PFS.

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

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

Diese Konfiguration funktioniert nicht für Apache <2.2.26, da keine Kryptografie mit elliptischen Kurven unterstützt wird.

Update :
Nur überprüft, es ist immer noch gut für A +. :) Ich glaube, das erfordert allerdings ein Zertifikat mit SHA256.

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

11
Daniel B

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
Kristian
 SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-SSLv3:-EXP:!kEDH
                                                           ^^^^^^^^

Durch Deaktivieren der SSLv3-Chiffresuiten werden alle mit SSL3.0 eingeführten Chiffresuiten deaktiviert. Da diese Chiffrensuiten auch mit späteren SSL-Versionen (TLS1.0 +) verwendet werden und neue Chiffrensuiten meist mit TLS1.2 eingeführt wurden, sind TLS1.0 und TLS1.1 aufgrund fehlender gemeinsamer Chiffren nicht verfügbar. Somit ist das Protokoll effektiv auf TLS1.2 beschränkt.

Wenn Sie openssl ciphers -V <cipher> mit Ihrer Chiffre-Zeichenkette aufrufen würden, würden Sie sehen, dass alle verfügbaren Chiffren TLS1.2 benötigen.

Zum Beispiel: openssl ciphers -V TLSv1.2.

3
Steffen Ullrich

Siehe SSLOpenSSLConfCmd-Direktive in der Apache 2.4-Konfiguration .

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

1
James B