SSL Zertifikat installieren
Ich zeige euch wie man ein SSL Zertifikat installieren kann. Dem einen oder anderen ist es vielleicht bereits aufgefallen, seit heute ist mein Blog nur noch über HTTPS erreichbar. In den folgenden Absätzen schreibe ich detailliert zusammen was ich alles gemacht habe und worauf ihr achten müsst. Im großen und ganzen ist das hinzufügen eines SSL Zertifikats keine Hexerei.
SSL Zertifikat installieren
Wenn eine Webseite unter HTTPS erreichbar ist, dann war das bis jetzt immer mit wichtigen Daten oder Zahlungsverkehr verbunden. Onlinebanking, Online Shops und Behördengänge wären ohne die SSL Verschlüsselung nicht denkbar. Das hat auch Google erkannt und hat dementsprechend deren Suchmaschinenlogik angepasst. Mit dem letzten Update werden nun HTTPS gesicherte Webseiten leicht bevorzugt, es ist zu erwarten, dass sich das in den nächsten Jahren immer stärker auswirkt.
Schritt 1: CRT erzeugen
Ein CRT kann man üblicherweise automatisch beim eigenen Hoster erzeugen. Dafür gibt man die notwendigen Daten ein:
- Land/Region (C)
- Bundesland/Kanton (ST)
- PLZ (postalCode)
- Straße, Hausnummer (streetAddress)
- Organisation/Einheit (O)
- Organisationseinheit (OU) – optional
- Gemeinsamer Name (CN)
Wie kommt man zu diesen Daten? Beim Anlegen eines Domain Zertifikats muss man jene Daten eingeben, die man bei der Registrierung der Domain verwendet hat. In der Regel ist das die eigene Anschrift oder jene der Firma. Über eine whois Abfrage kann man diese Daten abfragen (falls man diese nicht mehr weiß):
whois developer-blog.net
Falls das Programm whois nicht installiert ist kann man dieses auf Linux mit folgendem Befehl nachinstallieren:
sudo apt-get install whois
Man kann auch über Google whois Abfragen tätigen.
Das Ergebnis des CRT ist ein Text im Format:
-----BEGIN CERTIFICATE----- EINELUSTIGEKETTEAUSSEHRVIELENBUCHSTABENZAHLENUNDZEICHEN -----END CERTIFICATE-----
Das ist nun bereits ein Zertifikat, dieses könnten wir auch benutzen, doch leider wird ein selbst signiertes Zertifikat von Webbrowsern nicht akzeptiert. Der Benutzer bekommt eine Fehlermeldung angezeigt mit dem Hinweis, dass das Zertifikat nicht sicher ist. Ein Dritter muss dieses Zertifikat signieren, dieser muss zudem auch vertrauenswürdig sein. Diesen Luxus bezahlen wird mit dem Kauf eines Zertifikats.
Schritt 2: SSL Zertifikat kaufen
Online kann man sich bei diversen Anbietern ein Zertifikat kaufen. Nach dem Kauf wird man gebeten ein CSR zu erzeugen und den Code hochzuladen. In der Folge muss man noch eine Standard Email Adresse der Domain angeben. Meistens admin@domain.com oder webmaster@domain.com. Dort muss man zunächst die Mail über einen Code bestätigen, danach bekommt man das Zertifikat als *.crt Datei in einem Email. Oft bekommt man sogar mehrere *.crt Dateien. Was es damit auf sich hat erkläre ich im nächsten Schritt.
Schritt 3: Zertifikat installieren
Das Zertifikat installiert man in dem man den Inhalt der domain.crt Datei kopiert und beim Hoster in das CRT Eingabefeld kopiert. Speicher und fertig. Von nun an ist die Seite auch über HTTPS erreichbar.
Schritt 4: Probleme
Meistens funktioniert das erstellen eines HTTPS Zertifikats nicht reibungslos. In meinem Fall funktionierte es auf mobilen Browsern nicht. Mobile Browser zeigten folgende Fehlermeldung (Firefox mobil und Chrome mobil):
Wie man sehen kann wird eine ERR_CERT_AUTHORITY_INVALID beziehungsweise eine sec_error_unknow_issuer Fehlermeldung ausgegeben. Diese sagen aus, dass der Dritte, welcher das Zertifikat eigentlich signiert hat unbekannt ist. Das ist insofern merkwürdig, da die selbe Webseite über einen Desktop Browser problemlos läuft.
Die Lösung des Problems sind die neben dem domain.crt mitgelieferten *.crt Dateien. Diese repräsentieren die so genannte Chain of trust oder auch Brückenzertifikat. Über diese Zertifikate ist angegeben, wer das Zertifikat von wem signiert und absegnet, für den Browser sagt dieses zusätzliche Zertifikat, dass die Quelle vertrauenswürdig ist. Diese Intermediate-, Bundle- oder CA Zertifikate kopiert man einzeln wie das CRT der Domain und für diese in die dafür vorgesehene Textbox beim Hoster. Man kann dort beliebig viele ablegen. Nachdem diese Brückenzertifikate auch bekannt sind stimmt die Zertifizierung auch auf dem mobilen Gerät.
HTTP auf HTTPS umleiten
Der letzte Schritt ist nun alle HTTP Seiten auf HTTPS umzuleiten. Dadurch erreicht man eine 100%ige Erreichbarkeit der Webseite durch die verschlüsselte Verbindung. Am einfachsten ist die HTTP Anfragen generell auf HTTPS umzuleiten mit einem 301 Redirect. Beim weit verbreiteten Apache Webserver ist das in der .htaccess Datei möglich. Diese sollte im Root-Verzeichnis der Webseite liegen, falls es noch keine gibt kann man eine neue erzeugen. Folgende Zeilen Code leiten alle HTTP Anfragen auf die selbe URL mit HTTPS weiter:
RewriteCond %{HTTPS} !on RewriteRule ^(.*)$ https://developer-blog.net/$1 [R=301,L]
Sollte das nicht funktionieren, dann hat man entweder keinen Apache Webserver oder der Rewrite Mod ist nicht installiert. Im Zweifelsfall sollte man dazu den Administrator benachrichtigen, oder bei selbst gehosteten Systemen das Modul nachinstallieren.
Fazit
Ein SSL Zertifikat installieren geht recht einfach. Aufgrund der immer wichtiger werdenden Sicherheit der Daten im Internet sind SSL Zertifikate bei Onlineshops und Seiten mit sensiblen Daten mittlerweile Pflicht. Auch als „normaler“ Webseitenbetreiber sollte man HTTPS verwenden, da Google mit dem letzten Update die Verwendung eines SSL Zertifikats belohnt. Die Wichtigkeit verschlüsselter Verbindungen wird generell wichtiger, so ist man gut beraten, wenn man auch frühzeitig auf HTTPS wechselt.
Was denkt ihr darüber? Verwendet ihr auch schon HTTPS? Schaut ihr beim Bezahlen oder bei einer Weiterleitung auf zum Beispiel Paypal immer im Browser ob das Zertifikat auch in Ordnung ist?
Hallo,
vielen Dank für den Artikel. Also haben SSL-Zertifikate künftig auch eine Auswirkung auf die Suchmaschinenoptimierung (was irgendwo abzusehen war).
Worauf muss man denn beim Kauf eines Zertifikates achten? Wenn ich mir ein Angebot wie dieses ( https://www.psw.net/ssl-zertifikate.cfm ) ansehe, empfinde ich das Leistungsspektrum als etwas unübersichtlich.
Vielen Dank und Grüße,
Holger Thomen
Hallo,
ich habe ein relativ günstiges für meinen Blog. Wichtig ist, dass ein modernes Zertifikat ist – aktuell TLS 1.2. Zertifikate kann man sich ja auch selber erstellen. Man kauft sich ein Vertrauen – jemand bestätigt extern, dass du der Besitzer bist. Je größer dieses Vertrauenslevel ist, desto teurer sind die Zertifikate. Billige bestätigen, dass du der Inhaber der Domain bist. Es gibt aber auch Zertifikate die deine Adresse, Mail usw. bestätigen. Technisch gesehen gibt es neben normalen Domainzertifikate auch so genannte Wildcard Zertifikate – diese schützen neben der Domain auch alle Subdomains.
Im Internet findet man meist auch spezielle Zertifikate für Webshops und so weiter…für eine einfache Webseite, Blog oder Domain reicht ein einfaches TLS 1.2 auf jeden Fall.
Hallo,
vielen Dank für die Rückmeldung. Ich denke auch, dass für meine Zwecke ein günstiges Zertifikat ausreichen wird.
Viele Grüße,
Holger Thomen