SSL Zertifikate selbst signieren – 1/2

SSL – Der „Secure Socket Layer“
‚Erfunden‘ wurde das Protokoll von der Firma Netscape. Das ist schon sehr lange her. Seinen ursprünglichen Zweck erfüllt es trotzdem nach wie vor: Die Absicherung des Datenstroms gegen „Mitlesen“ während der Übertragung zwischen Server und Anwender. Doch wie bei vielen ‚alten‘ Protokollen hat sich das Internet viel rasanter entwickelt, als es sich deren Schöpfer vorstellen konnten. Was viele Probleme, Workarounds und Unsicherheiten mit sich bringt…
Hier folgt nun der Versuch, eine vernünftig laufende Zertifizierungsstelle für selbst signierte Zertifikate auf unserem Server einzurichten…

Dabei nehmen wir mal ein wenig Entwicklung vorweg. Normalerweise wollte ich erst den Webserver machen und dann SSL. So müssten wir aber alle Configs noch mal um den SSL-Teil ergänzen. Darum habe ich mich entschlossen, erst SSL zu behandeln. Damit sind wir in der Lage, die Zertifikate zu bauen, die wir dann für den Webserver brauchen. Diese können wir dann direkt in einem Aufwasch gleich in die Configs einbauen…

Im ersten Teil klären wir ein paar Begriffe und lernen den Unterschied zwischen selbst signierten und von einer vertrauenswürdigen CA signierten Zertifikaten kennen.

„SSL“ ist der grobe Überbegriff für „verschlüsselte Datenübertragung“ und hat mit den Zertifikaten an sich erst mal wenig zu tun. „SSL-Unterstützung“ brauchen wir im Web- und E-Mail-Server. Die macht dann zusammen mit unseren Zertifikaten ihre „Magie“ und schlüsselt den Datenstrom damit ein.

Doch woher bekommen wir Zertifikate?
Zertifikate werden von uns auf unserem Server erzeugt. Das ist kein Problem. Nur ist das Zertifikat für sich alleine nicht viel wert. Es muss noch ’signiert‘ werden, bevor wir es nutzen können. Und zwar von einer CA – einer Certificate Authority.

Dafür gibt es jetzt zwei Möglichkeiten:

  • a) Wir signieren unsere Zertifikate selbst und bauen dazu eine eigene CA (Certificate Authority) auf unserem Server.
  • b) Eine kommerzielle / vertrauenswürdige CA signiert unsere Zertifikate.

Selbst signieren ist gratis und wir können so viele Zertifikate ausstellen, wie wir lustig sind. Im Gegensatz dazu nehmen kommerzielle CAs dafür meistens einen Haufen Geld. Und mit „Haufen“ meine ich bis zu 400 Euro für ein Zertifikat, dass dann nur ein Jahr lang gültig ist.

Für beide Sorten Zertifikat gilt auch, dass sie nur auf dem Server gelten, für den sie ausgestellt worden sind. Ziehen wir den Server nach ein paar Wochen um, ist das schöne teure Zertifikat nur noch Datenmüll. Es reicht streng genommen schon eine Neuinstallation. Das gilt es auch zu bedenken, wenn wir uns für ein kostenpflichtiges Zertifikat entscheiden.

Warum signiert dann nicht jeder selbst?
Darum:
ssl-zertifikat-wird-nicht-vertraut
Dem selbst signierten Zertifikat wird „nicht getraut“, da der Webbrowser den Aussteller (=uns) nicht kennt. Durch so eine Meldung würden wir 95% unserer Gäste fluchtartig von unserer Seite treiben, obwohl wir es ja nur gut meinen…

Für „Otto-Normal-Internetnutzer“ liest sich die Meldung nämlich „GEFAHR! WEG, schnell! Hacker?! X!“ :/
Darum schalten wir SSL mit selbst signierten Zertifikaten nicht generell für jeden frei.

Sinn macht es aber durchaus, Admin-Bereiche auf unserem Web-Server per SSL zu sichern.
Da hier nur wir (und hoffentlich WIRKLICH nur wir…) hinkommen, ist uns die Meldung natürlich egal und wir richten eine permanente Ausnahmeregel ein. Danach ist dann zum Beispiel unser Backend von WordPress per SSL verschlüsselt und niemand kann mehr unsere Passwörter mitlesen, die ja sonst im Klartext durch das Internet geschickt werden würden.
Und weil mittlerweile jeder weiß, dass die NSA sich in jedem großen Netzknoten eingenistet hat und dort den kompletten Datenverkehr abschnorchelt, ist das eine sehr, sehr gute Idee, denen das Leben durch Verschlüsselung schwerer zu machen…

Im zweiten Teil richten wir die CA ein und erzeugen / signieren unser erstes Zertifikat :)

Haftungsausschluss!

Bitte lies Dir den Disclaimer durch, bevor Du eine Anleitung umsetzt...

Anzeige *

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.