Eigenes SSL Zertifikat

Aus schokokeks.org Wiki

Um Seiten verschlüsselt übertragen zu können, benötigt man ein SSL-Zertifikat. Das SSL-Zertifikat ist zuständig für die Verschlüsselung der Inhalte, sowie auch für die Identitäts-Beglaubigung einer Website.

Inhaltsverzeichnis

Erstellen eines eigenen Zertifikats

Um ein eigenes Zertifikat zu erstellen werden die OpenSSL-Tools benötigt. Beim erstellen ist zu beachten, dass bei der Frage nach CommonName die Domain eingetragen werden muss, für die das Zertifikat ausgestellt werden soll. Folgende Schritte sind durchzuführen:

mkdir SSL
cd SSL
# Erstellen eines privaten Schlüssels
openssl genrsa -des3 -out privkey.pem 4096
# Erstellen des Zertifikats
openssl req -new -key privkey.pem -out neues_Zertifikat.cert.csr

Das Zertifikat signieren lassen

Damit das Zertifikat benutzt werden kann, muss es von einer CA (certification authority) unterschrieben werden. Es besteht auch die Möglichkeit das Zertifignat selbst zu signieren.

Hier soll unser Zertifikat von einer vertrauenswürdigen CA unterzeichnet werden. Das kann entweder eine traditionelle, kommerzielle CA sein oder z.B. die freie Zertifizierungsstelle CAcert.org. Trotzdem zeigen wir, wie man es selber signiert.

self-signed

Ein so genanntes self-signed bzw. selbstsigniertes-Zertifikat ist von sich selbst unterzeichnet. Dies funktioniert folgendermaßen:

openssl x509 -req -days 365 -in neues_Zertifikat.cert.csr -signkey neues_Zertifikat.cert.key -out neues_Zertifikat.cert.crt

Kommerziellen Anbieter

Der traditionelle Weg zur Identitäts-Beglaubigung führt über sogenannte Certification Authorities (CAs). Diese Firmen stellen nach einer Prüfung der persönlichen Daten ein Zertifikat aus, das eine begrenzte Gültigkeit besitzt. Nach Ablauf dieser Frist, muss das Zertifikat erneuert werden.

Diese Methode hat unserer Auffassung nach zwei elementare Nachteile:

  1. Die Prüfung der Identität wird dem Website-Betreiber sehr teuer in Rechnung gestellt. Den Preis für ein derartiges Zertifikat kann sich eine kleine Firma wie schokokeks.org Webhosting nicht leisten.
  2. Der Aussteller des Zertifikats ist eine kommerzielle Firma und keine Staatliche Organisation. Ein Besucher einer Website, die mit einem derartigen Zertifikat identifiziert wird, muss nun dieser Firma bedingungslos vertrauen, denn nur dann funktioniert dieses Prinzip.

CAcert.org

Alternativ gibt es einen moderneren Ansatz, der auf einem Web-of-Trust (Vertrauens-Netzwerk) basiert und so funktioniert:

  • Jeder Benutzer des Internet kann sich kostenlos und unverbindlich bei der Website des Betreibers (ein Verein) anmelden.
  • Er wird lediglich über eine E-Mail-Adresse identifiziert, die per Bestätigungs-E-Mail überprüft wird.
  • Dann gibt es ein Punkte-System, bei dem erfahrene Benutzer (mit vielen Punkten) Punkte an neue Benutzer vergeben können. Dabei prüft der erfahrene Benutzer die staatlichen Ausweispapiere bei einem persönlichen Treffen und unterschreibt, dass der betreffende Benutzer diesen Namen trägt. Diese Unterschrift leistet er auch elektronisch, wodurch der neue Benutzer Punkte bekommt.
  • Sobald der neue Benutzer die Unterschriften von mehreren (mind. 3) unabhängigen anderen Benutzern erhalten hat, kann er auch selbst neue Benutzer beglaubigen.
  • Mit der Beglaubigung durch 2 erfahrene Benutzer wird der Name in das Profil eingetragen und der Benutzer kann SSL-Zertifikate mit seinem Namen versehen.

Dieses Verfahren löst die beiden elementaren Nachteile des oberen Systems:

  1. Die Identitäts-Prüfung muss nicht von einer Firma erledigt werden, dadurch ist die Zertifikats-Vergabe kostenlos
  2. Die Identität des Benutzer wird immer durch mehrere Personen beglaubigt.

Der Nachteil dieses Systems liegt leider momentan noch darin, dass der Betreiber-Verein nicht die finanziellen Mittel hat, die sehr teuren Überprüfungen zu absolvieren, die nötig sind um in den Lieferumfang der bekannten Browser hinein zu kommen.

Zertifikat entschlüsseln

Das Zertifikat enthält einen geheimen Schlüssel, der durch ein Passwort geschützt sein kann. Damit der Server das Zertifikat ohne Passworteingabe lesen kann, muss es entschlüsselt werden:

openssl rsa -in privkey.pem -out neues_Zertifikat.cert.key

Einrichten der Domain für das Zertifikat

Das Zertifikat (*.crt) und der geheime Schlüssel (*.key) müssen nun auf dem Server hinterlegt werden. Da der unverschlüsselte geheime Schlüssel nicht unverschlüsselt per E-Mail übertragen werden sollte, ist der einfachste Weg das eigene Home-Verzeichnis auf dem Server. Legen Sie die beiden Dateien dort ab und schützen sie sie mit chmod 600 *.key *.crt vor unbefugtem Zugriff.

Die Einrichtung im Server muss von den Admins gemacht werden. Senden Sie deshalb die Dateinamen des neuen Zertifikats an root@schokokeks.org.

Alternativ können sie die Dateien natürlich auch in einer verschlüsselten diese E-Mail an die Admins senden. Den GPG-Schlüssel für root@schokokeks.org finden Sie unter: Sichere Kommunikation

Persönliche Werkzeuge