Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
mkchain — Open-Source-Tool, das Ihnen hilft, eine gültige SSL-Zertifikatskette zu erstellen. | Kitploit
Tools/GitHubGitHub/trimstray/mkchain
Verschlüsselungs-/EntschlüsselungstoolsKryptographieDienstprogramme & Frameworks
GitHubtrimstray/mkchain

mkchain

Open-Source-Tool, das Ihnen hilft, eine gültige SSL-Zertifikatskette zu erstellen.

Repository anzeigen
381526vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

mkchain

Open-Source-Tool, das Ihnen hilft, eine gültige SSL-Zertifikatskette zu erstellen.

Travis-CI Version License

Beschreibung • Verwendung • Parameter • Funktionsweise • Anforderungen • Sonstiges • Lizenz


Master

Beschreibung

Ist ein Open-Source-Tool, das Ihnen hilft, eine gültige SSL-Zertifikatskette zu erstellen. Es kann Ihnen auch helfen, die unvollständige Kette zu reparieren und alle fehlenden CA-Zertifikate herunterzuladen. Sie können auch alle Zertifikate von einem entfernten Server herunterladen und Ihre Zertifikatskette richtigstellen.

Verwendung

Es ist einfach:

root@kitploit:~
# Dieses Repository klonen
git clone https://github.com/trimstray/mkchain

# In das Repository wechseln
cd mkchain

# Installieren
./setup.sh install

# Die Anwendung ausführen
mkchain -i /data/certs -o /data/chain.crt
  • Symlink zu bin/mkchain befindet sich in /usr/local/bin
  • Die Manpage befindet sich in /usr/local/man/man8

Parameter

Bietet die folgenden Optionen:

root@kitploit:~
  Usage:
    mkchain <option|long-option>

  Examples:
    mkchain --in Root.crt --in Intermediate1.crt --in Server.crt --out bundle_chain_certs.crt
    mkchain --in /tmp/certs --out bundle_chain_certs.crt --with-root
    mkchain -i Server.crt -o bundle_chain_certs.crt
    mkchain -i https://incomplete-chain.badssl.com/ --with-root

  Options:
        --help        show this message
        --debug       displays information on the screen (debug mode)
    -i, --in          add certificates to merge (file, multiple files, directory with ssl certificates
                      or remote domain)
    -o, --out         saves the result (chain) to a file
        --with-root   add root certificate to certificates chain

-o|--out - Ohne diesen Parameter speichert mkchain die Ausgabekette im Verzeichnis mkchain/chains/.

Funktionsweise

Bevor Sie es lesen, lesen Sie bitte den Artikel über SSL Certificate Chain.

Beginnen wir mit der ssllabs-Zertifikatskette. Diese werden zusammen mit mkchain ausgeliefert und befinden sich im Verzeichnis example/ssllabs.com, das zusätzlich das Verzeichnis all (enthält alle für den Aufbau der Kette benötigten Zertifikate) und das Verzeichnis server_certificate (enthält nur das Serverzertifikat) enthält.

Die korrekte Kette für die Domain ssllabs.com (Ergebnis des openssl-Befehls):

root@kitploit:~
Certificate chain
 0 s:/C=US/ST=California/L=Redwood City/O=Qualys, Inc./CN=ssllabs.com
   i:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2012 Entrust, Inc. - for authorized use only/CN=Entrust Certification Authority - L1K
 1 s:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2012 Entrust, Inc. - for authorized use only/CN=Entrust Certification Authority - L1K
   i:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2009 Entrust, Inc. - for authorized use only/CN=Entrust Root Certification Authority - G2
 2 s:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2009 Entrust, Inc. - for authorized use only/CN=Entrust Root Certification Authority - G2
   i:/C=US/O=Entrust, Inc./OU=www.entrust.net/CPS is incorporated by reference/OU=(c) 2006 Entrust, Inc./CN=Entrust Root Certification Authority

Der obige Code zeigt eine vollständige Kette, bestehend aus:

  • Identitätszertifikat (Serverzertifikat)

    ausgestellt für ssllabs.com von Entrust Certification Authority - L1K

  • Zwischenzertifikat

    ausgestellt für Entrust Certification Authority - L1K von Entrust Root Certification Authority - G2

  • Zwischenzertifikat

    ausgestellt für Entrust Root Certification Authority - G2 von Entrust Root Certification Authority

  • Wurzelzertifikat (selbstsigniertes Zertifikat)

    ausgestellt für Entrust Root Certification Authority von Entrust Root Certification Authority

Szenario 1

In diesem Szenario verketten wir alle gelieferten Zertifikate. Beispiel für die Ausführung des Tools:

Master

Szenario 2

In diesem Szenario verwenden wir nur das Serverzertifikat und nutzen es, um die restlichen erforderlichen Zertifikate abzurufen. Dann kombinieren wir, wie oben, alle bereitgestellten Zertifikate. Beispiel für die Ausführung des Tools:

Master

Zertifikatskette

Um eine gültige Kette zu erstellen, müssen Sie dem Tool alle erforderlichen Zertifikate zur Verfügung stellen (wenn Sie ein Verzeichnis für den Parameter -i|--in festlegen). Dies sind:

  • Serverzertifikat
  • Zwischen-CAs und Wurzel-CAs

Dies ist sehr wichtig, da Sie ohne diese den Anfang und das Ende der Kette nicht bestimmen können.

Wenn Sie nur eine Zertifikatsdatei als -i|--in-Wert angeben, lädt mkchain automatisch alle erforderlichen Zertifikate herunter.

Wenn Sie jedoch in die erzeugte Kette nach der Generierung mit mkchain schauen, werden Sie dort kein Wurzelzertifikat finden.

Warum? Weil selbstsignierte Wurzelzertifikate nicht in die Webserverkonfiguration aufgenommen werden müssen/sollten. Sie dienen keinem Zweck (Clients ignorieren sie immer) und verursachen einen leichten Leistungsverlust (Latenz), da sie die Größe des SSL-Handshakes vergrößern.

Wenn Sie ein Wurzelzertifikat zur Zertifikatskette hinzufügen möchten, rufen Sie das Dienstprogramm mit dem Parameter --with-root auf.

Zertifizierungspfade

mkchain erlaubt die Verwendung von zwei Zertifizierungspfaden:

Master

Ausgabekommentare

Bei der Generierung der Zertifikatskette zeigt mkchain Kommentare mit Informationen zu den Zertifikaten an, einschließlich etwaiger Fehler.

Hier ist eine Liste aller Möglichkeiten:

Identitätszertifikat (Endbenutzer-, Serverzertifikat) nicht gefunden

Die Meldung wird beim Fehlen eines Serverzertifikats angezeigt, das den Anfang der Kette darstellt. Dies ist ein einzigartiger Fall, da in dieser Situation mkchain seine Ausführung beendet und nur diese Information anzeigt. Das Serverzertifikat ist das einzige Zertifikat, das für die korrekte Erstellung einer Kette erforderlich ist. Ohne dieses Zertifikat wird keine korrekte Kette erstellt.

Korrektes Identitätszertifikat (Endbenutzer-, Serverzertifikat) gefunden

Die umgekehrte Situation hier – Meldung, die angezeigt wird, wenn ein gültiges Serverzertifikat gefunden wird.

Erstes Zwischenzertifikat nicht gefunden

Diese Meldung erscheint, wenn das erste der beiden Zwischenzertifikate nicht gefunden wird. Diese Information gibt nicht explizit das Fehlen eines zweiten Zwischenzertifikats an, ermöglicht aber andererseits die Feststellung, ob das Zwischenzertifikat, mit dem das Serverzertifikat signiert wurde, existiert. Zusätzlich kann sie angezeigt werden, wenn das zweite Zwischenzertifikat geliefert wurde.

Zweites Zwischenzertifikat nicht gefunden

Ähnlich wie oben, betrifft jedoch das zweite Zwischenzertifikat. Es besteht jedoch die Möglichkeit, die Kette korrekt unter Verwendung des zweiten Zertifizierungspfads zu erstellen, z. B. durch Verwendung des ersten Zwischenzertifikats und Ersetzen des zweiten durch das Hauptzertifikat.

Ein oder mehrere Zwischenzertifikate nicht gefunden

Diese Meldung bedeutet, dass eines oder alle erforderlichen Zwischenzertifikate fehlen, und wird beim Fehlen des Wurzelzertifikats angezeigt.

'n' korrekte(s) Zwischenzertifikat(e) gefunden

Diese Meldung gibt die Anzahl der gültigen Zwischenzertifikate an.

Korrektes Wurzelzertifikat nicht gefunden

Das Fehlen des Wurzelzertifikats wird als Warnung behandelt. Bei der Konfiguration von Zertifikaten auf der Serverseite wird natürlich davon abgeraten, ein Wurzelzertifikat anzuhängen. Wenn Sie es jedoch mit mkchain erstellen, behandelt das Tool die Kette als unvollständig und zeigt Informationen über die fehlerhafte Erstellung der Kette an.

Ein leeres CN-Feld wurde in einem der Zertifikate gefunden

Diese Meldung informiert nicht über einen Fehler, sondern über das Fehlen des CN-Feldes, was bei einigen Zertifikaten vorkommen kann (siehe example/google.com). Das Common-Name-Feld identifiziert den Hostnamen, der mit dem Zertifikat verbunden ist. Es gibt keine Anforderung in RFC3280, dass ein Aussteller-DN einen CN haben muss. Die meisten CAs fügen einen CN in den Aussteller-DN ein, aber einige tun dies nicht, wie diese Equifax-CA.

Anforderungen

mkchain verwendet externe Dienstprogramme, die vor der Ausführung installiert sein müssen:

  • OpenSSL (getestet auf 1.1.0g/h)

Dieses Tool arbeitet mit:

  • GNU/Linux (getestet auf Debian und CentOS)
  • Bash (getestet auf 4.4.19)

MacOS/FreeBSD:

  • Ersatz für getopt(1), das GNU-ähnliche Long-Optionen unterstützt (pkg install getopt)
  • Funktioniert auch auf MacOS mit greadlink von coreutils (installiert über homebrew)

Sonstiges

Mitwirken

Siehe dies.

Projektarchitektur

Siehe dies.

Lizenz

GPLv3 : http://www.gnu.org/licenses/

Freie Software, Yeah!

Tool herunterladen