wall < "Erstellung eines SSL-Server-Zertifikats"

Broadcast message from spillerm@unixe.de (pts/1) (Fr Feb 06 14:23:54 2015):
4
Diesen Beitrag schrieb ich vor 4 Jahren. Behalte das beim Lesen bitte im Hinterkopf.

Beim Zertifikat hab ich mich für ein self-signed entschieden, aber das ist natürlich Geschmackssache. Zertifikate von offizieller Stelle sind nicht kostenlos, und Geld will und kann ich dafür nicht ausgeben. Das Problem wird sein, dass die Clients die CA nicht kennen und ich diese erstmal bekannt machen muss — wie das geht, zeige ich. Ich notiere mal, wie ich vorgegangen bin:

  • Ich lege einen Ordner an, in dem mein Zertifikat erstellt werden soll, und bewege mich hinein. Dann erzeuge ich mit einen Schlüssel für mein Zertifikat (Länge 4096 Bit) und setze die Lebensdauer meiner CA mit 10 Jahren bewusst hoch an, denn wird die CA ungültig, werden es auch alle damit verbundenen Zertifikate.
    # mkdir /etc/ssl/my
    # cd /etc/ssl/my
    # openssl req -new -x509 -newkey rsa:4096 -keyout cakey.pem -out cacert.pem -days 3650
  • Das erstellt die beiden Dateien cakey.pem und cacert.pem. Auf ersteren gut aufpassen und deshalb die Rechte entsprechend setzen! Danach baue ich mir einen Schlüssel für mein Serverzertifikat. Eine leere Passphrase ist nicht möglich, deshalb gebe ich eine einfache an, die ich im nächsten Schritt dann wieder entferne — ich will ja nicht bei jedem Starten des Dienstes eine Passphrase eintippen müssen. Auszufüllen sind die für SSL-Zertifikate üblichen Angaben:
    # chmod 600 cakey.pem
    # openssl genrsa -out serverkey.pem -aes128 4096 -days 3650
  • So, und jetzt kann die Passphrase wieder weggeschmissen werden:
    # openssl rsa -in serverkey.pem -out serverkey.pem
  • Jetzt erzeuge ich mir ein CSR (Certificate Signing Request), der von der CA signiert wird; common name ist dabei der (DNS)-Name, unter dem der Host späterhin angesprochen werden soll — in meinem Fall spiller.me. Soll der Dienst unter einer Subdomain laufen, muss diese hier angegeben werden! Das challenge password bleibt leer.
    # openssl req -new -key serverkey.pem -out req.pem -nodes
    # echo 01 > serial
    # touch index.txt
  • Im letzten Schritt wird nun endlich das Zertifikat mit unserer CA signiert:
    # openssl ca -in req.pem -notext -out servercert.pem
    Enter pass phrase for ./cakey.pem:

Im weiteren Verlauf benötigen wir nun servercert.pem, serverkey.pem und cacert.pem; cakey.pem wird nicht benötigt und sollte an sicherer Stelle aufbewahrt werden.

Weiter zu Teil 2…

4
  1. Hallo Marianne, hallo liebe MitleserInnen,
    sysadmama weißt ja selber darauf hin: „Die Zeiten ändern sich“. Vielleicht ist ja dieser Artikel [1] aus der c’t in dem die Verwendung von kostenlosen “ echten“ SSL Certs erklärt wird interessant.
    Vielen Dank für Deine Anleitungen Marianne
    Ahoi cobii

    [1] http://m.heise.de/security/meldung/Let-s-Encrypt-Ab-dem-3-Dezember-Gratis-SSL-Zertifikate-fuer-alle-2920357.html

Keine weitere Reaktionen mehr möglich.