Kann das selbstsignierte SSL-Zertifikat erneuert werden? Wie?

18

Ich bin ein Neuling bei SSL-Zertifikaten und möchte wissen, ob ein selbstsigniertes Zertifikat, das ich für HTTPS verwende, erneuert werden kann, um das Ablaufdatum zu verlängern, ohne dass alle Clients der Site den Prozess "Ausnahmen zulassen" durchlaufen müssen zu tun, wenn sie die Site zum ersten Mal besuchen oder wenn sie ein neues selbstsigniertes Zertifikat ausstellen, das von Grund auf neu erstellt wurde.

Ich habe das folgende Tutorial gefunden, das zeigt, wie ein selbstsigniertes Zertifikat mithilfe von erneuert wird openssl, konnte es jedoch nicht so verwenden, dass mein Browser es stillschweigend akzeptiert, ohne den Warnbildschirm "Nicht vertrauenswürdige Site" anzuzeigen:

  # cd /etc/apache2/ssl
  # openssl genrsa -out togaware.com.key 1024
  # chmod 600 togaware.com.key
  # openssl req -new -key togaware.com.key -out togaware.com.csr
    AU
    ACT
    Canberra
    Togaware
    Data Mining
    Kayon Toga
    [email protected]
    (no challenge password)
  # openssl x509 -req -days 365 -in togaware.com.csr \
            -signkey togaware.com.key -out togaware.com.crt
  # mv apache.pem apache.pem.old
  # cp togaware.com.key apache.pem 
  # cat togaware.com.crt >> apache.pem 
  # chmod 600 apache.pem
  # wajig restart apache2

Mein Setup entspricht im Wesentlichen der Beschreibung in dieser Antwort und ich verwende CRT- und KEY-Dateien (aus diesem Lernprogramm ) anstelle einer PEM-Datei. Vielleicht habe ich etwas durcheinander gebracht, als ich versuchte, sie auf meinen Fall anzuwenden.

Andererseits habe ich viele Foreneinträge gefunden, die darauf hindeuten, dass es völlig unmöglich ist, ein selbstsigniertes Zertifikat zu erneuern, und ich muss ein neues von Grund auf neu erstellen.

Jede Hilfe wäre willkommen ... oder wäre diese Frage besser für /server// oder /superuser// geeignet ?

FriendFX
quelle
7
Anstatt diese Frage abzustimmen, geben Sie bitte konkrete Ratschläge, was Sie daran verbessern können.
FriendFX

Antworten:

23

Per Definition kann ein selbstsigniertes Zertifikat nur durch direkte Vertrauenswürdigkeit als vertrauenswürdig eingestuft werden , dh durch das, was Webbrowser wie Firefox als Prozess "Ausnahmebedingung zulassen" anzeigen. Ein ganz bestimmtes Zertifikat wird bis zum letzten Bit als "vertrauenswürdig" deklariert. An einem Zertifikat kann nichts geändert werden, ohne dieses Modell zu verlassen, insbesondere das Ablaufdatum, das Teil der im Zertifikat enthaltenen Daten ist.

Sie können sich Erneuerung als eine Art Familiensache vorstellen: Wenn ein Zertifikat "erneuert" wird, wird es tatsächlich durch ein jüngeres Geschwister ersetzt. Clients akzeptieren das neue Zertifikat stillschweigend, da es dieselbe Herkunft wie das vorherige Zertifikat hat. Selbstsignierte Zertifikate sind Waisenkinder: Sie haben keine Vorfahren. Daher kein Geschwister und kein Automatikgetriebe.

(Abgesehen von diesen Vorfahren ist die Erneuerung die Erstellung eines neuen Zertifikats. Zertifikate sind unveränderlich . "Erneuerung" ist eine Denkweise über die Beziehung zwischen den alten und den neuen Zertifikaten.)

Wenn Sie unbeaufsichtigte Verlängerungen durchführen möchten, benötigen Sie ein selbstsigniertes CA- Zertifikat . Sie stellen Zertifikate für Ihre Server von dieser Zertifizierungsstelle aus und bitten Ihre Kunden, dieser Zertifizierungsstelle zu vertrauen. Dies ist natürlich eine große Herausforderung: Eine Zertifizierungsstelle, der Sie vertrauen, kann das gesamte Internet in Ihren Augen vortäuschen. Grundsätzlich geht es bei dieser Lösung darum, eine eigene Zertifizierungsstelle zu erstellen und zu verwalten. Dies ist Aufgabe und Arbeit.


Wenn Sie das nächste Mal ein selbstsigniertes Zertifikat erstellen, ist es langlebig. Zertifikate verfallen hauptsächlich, um den Widerruf zu ermöglichen (der Ablauf der Zertifikate verhindert, dass die CRL auf unbestimmte Zeit wächst). Für ein selbstsigniertes Zertifikat gibt es keinen Widerruf, sodass Sie das Zertifikat 20 Jahre lang gültig machen können. Oder für 2000 Jahre (obwohl das Jahr-2038-Problem je nach Client-Software irgendwann auftauchen kann).

Tom Leek
quelle
Danke für die ausführliche Antwort! Ich frage mich allerdings, was das in Bezug auf das Tutorial bedeutet, mit dem ich verlinkt bin. Gilt das nur für selbstsignierte CA- Zertifikate? Ich habe nur gehofft (und nach dem Lesen des Tutorials gedacht), dass es eine Möglichkeit gibt, den privaten Schlüssel vom alten einzulesen und einen neuen, "kompatiblen" zu erstellen ... einen, der eher wie ein "Kind" als wie ein "Kind" aussieht "Waise". Übrigens eine schöne Analogie!
FriendFX
@FriendFX - Was du willst ist nicht möglich. Tom ist richtig, das Renweal generiert ein neues Zertifikat.
Ramhound
@ Ramhound - ich verstehe. Die einzige offene Frage ist: Was ist dann der Zweck dieses Tutorials?
FriendFX
@FriendFX - Es wurde von einem zufälligen Typen im Internet geschrieben, nur weil sie einen Blog haben, heißt das nicht, dass sie verstehen, worüber sie schreiben. Der Autor erklärt einfach nicht, dass das Tutorial zu einem neuen Zertifikat führen wird
Ramhound
3
@FriendFX Ja, dieses Tutorial funktioniert nur für selbstsignierte CA-Zertifikate. Wenn Sie dasselbe Schlüsselpaar und denselben Betreff verwenden, können Sie mehrere CA-Zertifikate erstellen, die jeweils als gültiger Aussteller für ausgestellte Zertifikate gelten. Diese Zertifikate können sogar von verschiedenen übergeordneten Zertifizierungsstellen ausgestellt werden, was als "Cross-Chaining" bezeichnet wird.
Calrion
3

Kurze Antwort: Nein.

Das Vertrauen in ein selbstsigniertes Zertifikat entspricht dem Vertrauen in einen einzelnen Pass anstelle des Landes, das diesen Pass ausstellt. Wenn Sie einen neuen Pass erhalten, wird dieser nicht automatisch von jemandem als vertrauenswürdig eingestuft, insbesondere weil es sich um eine andere Sache mit unterschiedlichen Attributen handelt (Passnummer, Datum usw.). Es gibt keine Grundlage dafür, dass jemand, der dem alten Pass ausdrücklich vertraut, weiß, dass dem neuen Pass vertraut werden kann.

Liam Dennehy
quelle
0

Wenn Sie selbstsignierte Zertifikate verwenden (ich empfehle die Verwendung von xca unter Windows), können Sie einfach das Ablaufdatum auf 7999-12-31 (das ist die maximale Zeit für UTC) und das Anfangsdatum auf 1970-01-01 (For Kompatibilität mit falsch konfigurierter Uhrzeit / Datum in PCs)

H3LL0
quelle