Was ist der Zweck von chain.pem-Dateien?

Was ist der Zweck von chain.pem-Dateien?

Eine allgemeine Frage zu chaim.pem-Dateien; ich habe eine CSR von meinem Host verwendet und den Certbot von LetsEncrypt verwendet, um ein https-Zertifikat zu generieren; ich habe den folgenden Befehl verwendet

$ certbot certonly --manual --csr Datei mit meiner CSR.txt

Der Certbot hat drei Dateien erstellt: 0000_cert.pem, 0000_chain.pem und 0001_chain.pem. Anschließend habe ich die Datei cert.pem verwendet, um das Zertifikat wieder auf meinem Host zu installieren. Es hat alles ziemlich reibungslos funktioniert.

Meine Frage ist, wofür die „Kettendateien“ verwendet werden, da ich sie nirgends verwendet habe. In welchen Szenarien sind sie nützlich?

Antwort1

Ihre Certbot-Ausgabe ist etwas ungewöhnlich. Sie sollten eine Datei „fullchain.pem“ erhalten haben, die alles in der richtigen Reihenfolge enthält, nicht mehrere separate Dateien.

(Ganz zu schweigen von der manuellen Installation selbst – diese müssen Sie automatisieren.)

Meine Frage ist, wofür die "Kettendateien" verwendet werden

Alle WebPKI-Zertifizierungsstellen verfügen über mindestens ein zweistufiges System:

  1. Das sicher offline gespeicherte Stamm-CA-Zertifikat signiert Zwischen-CA-Zertifikate (ausstellende CA-Zertifikate).
  2. Die online gespeicherten Zwischenzertifizierungsstellen signieren die Serverzertifikate (Endentität).

Zum Beispiel,Hier ist ein Diagramm vonLass uns verschlüsseln,deren Hierarchie normalerweise ist:

Root: "DST Root CA X3" (or possibly "ISRG Root X1")
\-- Issuing: "Let's Encrypt R3"
    \-- End-entity: "letsencrypt.org"

Die meisten TLS-Clients (Browser, Betriebssysteme) verfügen nur über dieWurzelZertifikat vorinstalliert. Auf diese Weise müssen sie nicht jedes Mal aktualisiert werden, wenn eine Zertifizierungsstelle ihre Infrastruktur ändert – nur, wenn die Zertifizierungsstellen selbst hinzugefügt oder entfernt werden.

Um jedoch die Signatur jedes Zertifikats zu überprüfen, müssen Siebrauchenüber das unmittelbar vorhergehende Zertifikat zu verfügen (Sie können beispielsweise die Signatur des Serverzertifikats nicht direkt mithilfe der Stammzertifizierungsstelle überprüfen, da zwischen beiden keine direkte kryptografische Beziehung besteht).

Dies bedeutet, dass der Client über alle Zwischenzertifikate verfügen muss, um die Kette zwischen einer Stammzertifizierungsstelle zu vervollständigen. Wenn eines der Zwischenzertifikate fehlt, verfügt der Client nicht mehr über genügend Informationen, um den Rest zu überprüfen.

Für HTTPS ist dieprimärMethode besteht darin, dass der Server alle seine Kettenzertifikate sendet – da der Server diese ja bereits haben sollte.

Einige Webbrowser verfügen hierfür über alternative Mechanismen. Firefox beispielsweise speichert einen Cache mit „zuvor angezeigten“ Zwischendateien, während Windows versucht, Zwischendateien mithilfe der AIA-URL in Ihrem Zertifikat herunterzuladen.

Aber nicht alle Browser tun dies, und vor allem die meisten Nicht-Web-TLS-Clientsnichtgibt es überhaupt solche Alternativen. Während eine unvollständige Kette oft für HTTPS funktioniert, funktioniert sie nicht für Dinge wie SMTP oder IRC.

Ich habe dann die Datei cert.pem verwendet, um das Zertifikat wieder auf meinem Host zu installieren. Es hat alles ziemlich reibungslos funktioniert

Höchstwahrscheinlich funktionierte es nur fürmancheBenutzer (vor allem Windows und Firefox), aber viele andere wurden ausgelassen. Gehen Sie nicht davon aus, dass es auf allen anderen Systemen funktionieren muss, nur weil es auf Ihrem eigenen System funktioniert.

Tools wieSSL-Laboreoder gnutls-cli example.com:443warnt Sie vor Situationen, in denen der Server nicht die vollständige Kette sendet.

Es ist jedoch möglich, dass Ihr Host, was auch immer das ist, auch proaktiv die Zwischendateien aus AIA-Informationen herunterlädt (ich vermute leicht, dass Windows' IISMaitun dies), und füllt die Lücken automatisch aus. Aber wenn das irgendwo gemacht wird, dann eher selten.

Regelmäßige Certbot-Nutzung

Normalerweise speichert Certbot die empfangenen Zertifikate im „gebrauchsfertigen“ Format im /etc/letsencrypt/liveOrdner, wobei fullchain.pem das Zertifikat des Hosts und alle erforderlichen übergeordneten Zertifikate enthält. In Apache httpd 2.4.x würden Sie beispielsweise Folgendes verwenden:

SSLCertificateFile    /etc/letsencrypt/live/example.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.net/privkey.pem

Antwort2

Eine einfache Erklärung findet sichHier

Zunächst, was ist ein PEM:

PEM ist ein Containerdateiformat, das häufig zum Speichern kryptografischer Schlüssel verwendet wird. Es wird für viele verschiedene Zwecke verwendet, da es lediglich die Struktur und den Kodierungstyp der Datei definiert, in der ein Datenbit gespeichert wird.

Was ist eine PEM-Datei:

PEM ist nur ein Standard; sie enthalten Text und das Format schreibt vor, dass PEM-Dateien mit … beginnen.

Mit SSL-Zertifikaten verwendete PEM-Dateien:

PEM-Dateien mit SSL-Zertifikaten

PEM-Dateien werden zum Speichern von SSL-Zertifikaten und den zugehörigen privaten Schlüsseln verwendet. Die vollständige SSL-Kette enthält mehrere Zertifikate und funktioniert in dieser Reihenfolge:

Das Endbenutzerzertifikat, das Ihrem Domänennamen von einer Zertifizierungsstelle (CA) zugewiesen wird. Dies ist die Datei, die Sie in nginx und Apache zum Verschlüsseln von HTTPS verwenden. Bis zu vier optionale Zwischenzertifikate, die von höheren Zertifizierungsstellen an kleinere Zertifizierungsstellen vergeben werden. Das Stammzertifikat, das höchste Zertifikat in der Kette, das von der primären Zertifizierungsstelle selbst signiert ist.

Was ist also chain.pem?

chain.pem ist der Rest der Kette; in diesem Fall ist es nur das Stammzertifikat von LetsEncrypt

Die chain.pemDateien enthalten Ihre Zwischenzertifikate.

Wenn Sie ein SSL-Zertifikat installieren, müssen Sie das Site-Zertifikat, aber auch die Zwischenzertifikate installieren. Diese sind wichtig. Wie angegebenHier:

Ein Zwischenzertifikat fungiert als Ersatz für ein Stammzertifikat, da das Stammzertifikat über eigene Sicherheitsebenen verfügt, die sicherstellen, dass seine Schlüssel unerreichbar bleiben. Zwischenzertifikate fungieren als „Vertrauenskette“ zwischen einem Endstellenzertifikat und einem Stammzertifikat.

UndHier:

Alle großen Zertifizierungsstellen verwenden Zwischenzertifikate, da diese ein höheres Sicherheitsniveau bieten. Dies hilft, den Schaden im Falle einer Fehlausstellung oder eines Sicherheitsvorfalls zu minimieren und abzugrenzen. Anstatt das Stammzertifikat und buchstäblich jedes Zertifikat, das es signiert hat, zu widerrufen, widerrufen Sie einfach das Zwischenzertifikat, was lediglich dazu führt, dass die Gruppe der von diesem Zwischenzertifikat ausgestellten Zertifikate als nicht vertrauenswürdig eingestuft wird.

verwandte Informationen