Am 30c3 habe ich mich entschlossen, meine Webseiten mit einem Zertifikat abzusichern.
Im allgemeinen Sprachgebrauch werden TLS und SSL synonym verwendet, technisch gesehen ist TLS jedoch eine Weiterentwicklung von SSL.
Zertifikat
Als ich mir die ersten Gedanken zum einsetzen von SSL Zertifikaten gemacht hatte, gab es für mich zwei mögliche Zertifikats Arten die für mich in Frage kamen: SSL Zertifikat pro (Sub)Domain oder ein Wildcard Zertifikat.
Ein Wildcard Zertifikat wird für *.domain.tld ausgestellt und ist dann für foo.domain.tld, bar.domain.tld oder wasauchimmer.domain.tld gültig. Dies ist praktisch wenn man viele verschiedene Dienste mit einer eigenen Subdomain laufen lassen will.
Dagegen ist ein „normales“ Zertifikat nur für domain.tld bzw. meist auch www. domain.tld gültig, aber nicht für blog.domain.tld.
Für mich war ein Wildcard Zertifikat definitiv die einfachere Lösung. Egal wie viele Dienste ich unter *.indero.ch aufschalten werde, mein Zertifikat hat diese bereits alle abgedeckt.
Beim Preis unterscheiden sich die die Zertifikate unter anderem sehr deutlich. So ist ein Wildcard Zertifikat teurer als eine Normales Zertifikat, und ein EV Zertifikat (grüne Adressleiste) nochmals um einiges teurer als ein Wildcard Zertifikat. Wobei einzig beim EV Zertifikat eine Prüfung der Organisation stattfindet. Ein normales Zertifikat gibt es schon für unter 10€. Technisch gesehen ist ein teures Zertifikat nicht sichere oder unsicherer als ein preiswertes Zertifikat.
Ein bisschen anders als oben beschrieben funktioniert es bei der Israelitischen CA StarCom. Bei dieser können gratis normale SSL Zertifkate bezogen werden. Diese Zertifikate werden auch von allen modernen Browsern akzeptiert. Möchte man aber Wildcard Zertifikate, muss man sich als Person verifizieren lassen, kann dann aber so viele Wildcard Zertifikate erstellen wie man Domains besitzt.
Für die Verifikation muss eine Kopie des Passes und des Fahrausweises gescannt und Hochgeladen werden. Mittels Telefonanruf wird dann sichergestellt, dass man die angegebene Person ist. Diese Verifikation kostet 60$ und ist ein Jahr gültig, die Zertifikate sind jedoch zwei Jahre gültig. Man kann also vor Ablauf des ersten Jahres nochmals ein Zertifikat erstellen.
Ich habe mich für StartSSL entschieden. Ich bin somit als Person von StartSSL validiert, und kann für alle meine Domains Wildcard Zertifikate erstellen.
Zertifikat erstellen
Ein Zertifikat sollte 2048 oder 4096 Bits lang sein. Wichtig ist, den Key nicht sofort nach dem Start eines Sytems zu erstellen, da dann nur wenig „Zufall“ vorhanden ist.
Einrichtung des Zertifikates auf dem Server
Ich betreibe meinen eigenen Server, dabei habe ich Zugriff auf die Konfiguration vom Webserver in meinem Falle Apache.
Die TLS Einstellungen für Apache sind Standardmässig nicht für Production gedacht. Eine gute Empfehlung für Einstellungen findet man im Mozilla Wiki. Wichtig ist die CipherSuite welche sichere Methoden bevorzugt und ältere aus Legacy gründen noch zulässt.
Hat alles mit der Einrichtung des Zertifikates geklappt kann man seine Konfiguration bei ssllabs.com überprüfen.
Webseiten anpassen
Ich betreibe meine Webseite mit WordPress. Damit die Umstellung auf TLS (SSL) klappt sollte man sich folgendes bewusst sein: Fremder Content muss auch via HTTPS erreichbar sein, ansonsten gibt es eine Zertifikatswarnung.
Content von Youtube, Vimeo, Flickr (Instagram jedoch nicht) ist auch über HTTPS erreichbar, dies sollte man vorher in seinen Posts/Seiten umstellen. Vimeo bietet Protokoll neutrale Codes an. Bei denen man sich keine Gedanken machen muss, ob die Seite via HTTP oder HTTP erreichbar ist.
Bei WordPress hilft ausserdem noch das Plugin WordPress-HTTPS.
Ausserdem noch ein Eintrag im .htacces um allen Traffic von HTTP auf HTTPs umzuleiten.
Fazit
Es gibt keinen Grund seine Webseite, und sei sie auch noch so klein nicht mit TLS zu sichern.
Jedoch sollte auch mit einem SSL Zertifikat der Zertifikats Industrie mit einer gesunden Portion Skepsis begegnet werden, was ein Artikel aus Frankreich sehr schön beweist.
Technische Zusatzinfo
Grundsätzlich wäre bei einer Verbindung zu einem Server TLS 1.1 oder besser TLS 1.2 wünschenswert. Das aktuelle Debian und Ubuntu LTS unterstützen beide TLS 1.2. Leider ist derzeit (01-02-2014) TLS 1.2 in Firefox und Internet Explorer noch nicht standardmässig aktiviert. Danilo hat über das Thema Firefox und TLS 1.2 geschrieben.
Das seit letztem Jahr bekannterem bekannterem „Perfect Forward Secrecy“ wird eingesetzt wenn Ephemeral Diffie-Hellman (DHE oder ECDHE, wobei ECDHE mit Eliptischen Kurven funktioniert.) verwendet wird. ECHDE ist dabei Ressourcen schonender aber weit weniger von den Browsern unterstützt als DHE. Ich verwende hier DHE, da das Betriebsystem des Server zwar ECDHE unterstützt, der Webserver jedoch noch nicht.