tas2580
Blog über Webentwicklung

Zertifikat mit A+ Bewertung bei ssllabs.com

tas2580  

Zertifikat ist nicht gleich Zertifikat, hier gibt es je nach Zertifikat Unterschiede was die Sicherheit angeht. Bei Webseiten die ein schwaches SSL/TLS Zertifikat verwenden kann mit der nötigen Technik der Traffic immer noch recht leicht mitgelesen werden. Deshalb sollte man bei der Installation eines Zertifikats darauf achten das man auch ein starkes Zertifikat verwendet. Der Nachteil an zu starker Verschlüsselung ist allerdings das alte Browser oder Geräte die Seite nicht mehr aufrufen können, hier muss man also zwischen Sicherheit und Kompatibilität Abwegen.

Auf https://www.ssllabs.com/ssltest/ kann man die Sicherheit seines SSL Zertifikats testen. Die beste Bewertung die man dort bekommen kann ist A+, die schlechteste Bewertung ist F. Um eine A+ Bewertung zu bekommen muss man an der Standard Konfiguration einige Dinge ändern.

Zertifikat generieren

Das Zertifikat benötigt einen 4096 Bit langen Key, wenn man Let's Encrypt verwendet um seine Zertifikate zu erstellen kann man beim erstellen des Zertifikats den Parameter --rsa-key-size 4096 anhängen.

./letsencrypt-auto certonly --standalone -d example.com -d www.example.com --rsa-key-size 4096

Wer ein Zertifikat per CSR erstellt um z.B. über StartSSL ein Zertifikat ausstellen zu lassen muss das mit folgendem Befehl tun:

openssl req -nodes -new -newkey rsa:4096 -out csr.pem -sha256
Jetzt muss man noch >=4096 dhparams gennerieren
openssl dhparam -out /etc/ssl/private/dhparams_4096.pem 4096

Wenn man den Befehl ausgeführt hat geht man sich am besten erst mal einen Kaffee holen denn das kann einige Zeit dauern.

Konfiguration anpassen

Nun kann man die Konfiguration des Webservers anpassen. Hier werden die veralteten SSL 2 und SSL 3 Protokolle ausgeschaltet, für die Besucher muss in Zukunft TLS ausreichen. Außerdem werden alle unsicheren Cipher unterbunden. Das Abschalten von RC4 führt allerdings dazu das der IE6 unter Windows XP die Seite nicht mehr erreichen kann, hier muss man sich eben zwischen Sicherheit und Kompatibilität entscheiden.

Lighttpd

Für den Lighttpd Webserver muss in die Datei /etc/lighttpd/lighttpd.conf folgendes Eingetragen werden:

$SERVER["socket"] == ":443" {
	ssl.engine	= "enable"
	ssl.use-sslv2	= "disable"
	ssl.use-sslv3 	= "disable"
	ssl.cipher-list	= "HIGH:!aNULL:!MD5:!3DES:!CAMELLIA:!AES128"
	ssl.ca-file	= "/etc/lighttpd/ca.pem" 
	ssl.pemfile	= "/etc/lighttpd/cert.pem"
	ssl.dh-file	= "/etc/ssl/private/dhparams_4096.pem"
}

Damit gelten die Einstellungen für alle Anfragen die auf Port 443 kommen.

Apache

Für den Apache Webserver muss die Datei /etc/apache2/mods-available/ssl.conf angepasst werden:

SSLEngine on
SSLCompression off
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"
SSLProtocol all -SSLv2 -SSLv3
SSLUseStapling on
SSLOpenSSLConfCmd DHParameters "/etc/ssl/private/dhparams_4096.pem"
SSLCertificateFile "/etc/letsencrypt/live/<<< DEINE DOMAIN >>>/fullchain.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/<<< DEINE DOMAIN >>>/privkey.pem"

HTTP Strict Transport Security (HSTS)

Jetzt muss man noch einen HSTS Header mit ausreichend Lebensdauer senden. Am besten macht man das per PHP:

header ('Strict-Transport-Security: max-age=31536000');

Alternativ kann man das auch über die Konfiguration des Webservers machen, z.B. per htaccess

Header set Strict-Transport-Security: max-age=31536000
Hier gibt es zu beachten das ein Browser die Seite für die in max-age angegebene Zeit nur noch über HTTPS aufrufen kann. Wenn man den Header sendet muss man also sicherstellen das man auch für die angegebene Zeit ein gültiges Zertifikat besitzt. Wenn man später die Verschlüsselung wieder abschalten möchte muss man rechtzeitig den Header entfernen.

Zertifikat testen

Nachdem man den Webserver neu gestartet hat kann man auf https://www.ssllabs.com/ssltest/ sein Zertifikat testen. Wenn man alles richtig gemacht hat sollte man nun eine A+ Bewertung bekommen.

SSL A+

Kommentare


Bitte warten ...

Kommentar schreiben

URLs werden automatisch umgewandelt.
[b]DEIN TEXT[/b] für Fett gedruckt
[quote]DEIN ZITAT[/quote] für Zitate
[code]DEIN CODE[/code] für Code
captcha