Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
mkchain — Outil open source pour vous aider à construire une chaîne de certificats SSL valide. | Kitploit
Outils/GitHubGitHub/trimstray/mkchain
Outils de Chiffrement/DéchiffrementCryptographieUtilitaires et Frameworks
GitHubtrimstray/mkchain

mkchain

Outil open source pour vous aider à construire une chaîne de certificats SSL valide.

Voir le dépôt
38152il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

mkchain

Outil open source pour vous aider à construire une chaîne de certificats SSL valide.

Travis-CI Version Licence

Description • Comment utiliser • Paramètres • Comment ça fonctionne • Prérequis • Autre • Licence


Maître

Description

Est un outil open source pour vous aider à construire une chaîne de certificats SSL valide. Il peut aussi vous aider à corriger une chaîne incomplète et télécharger tous les certificats CA manquants. Vous pouvez également télécharger tous les certificats depuis un serveur distant et obtenir une chaîne de certificats correcte.

Comment utiliser

C'est simple :

root@kitploit:~
# Clone this repository
git clone https://github.com/trimstray/mkchain

# Go into the repository
cd mkchain

# Install
./setup.sh install

# Run the app
mkchain -i /data/certs -o /data/chain.crt
  • Le lien symbolique vers bin/mkchain est placé dans /usr/local/bin
  • La page de manuel est placée dans /usr/local/man/man8

Paramètres

Fournit les options suivantes :

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 - sans ce paramètre, mkchain enregistre la chaîne de sortie dans le répertoire mkchain/chains/.

Comment ça fonctionne

Avant de le lire, veuillez consulter l'article sur SSL Certificate Chain.

Commençons avec la chaîne de certificats ssllabs. Ils sont fournis avec mkchain et se trouvent dans le répertoire example/ssllabs.com qui contient également le répertoire all (contenant tous les certificats nécessaires pour assembler la chaîne) et le répertoire server_certificate (contenant uniquement le certificat serveur).

La chaîne correcte pour le domaine ssllabs.com (résultat de la commande openssl) :

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

Le code ci-dessus présente une chaîne complète composée de :

  • Certificat d'identité (Certificat serveur)

    délivré pour ssllabs.com par Entrust Certification Authority - L1K

  • Certificat intermédiaire

    délivré pour Entrust Certification Authority - L1K par Entrust Root Certification Authority - G2

  • Certificat intermédiaire

    délivré pour Entrust Root Certification Authority - G2 par Entrust Root Certification Authority

  • Certificat racine (Certificat auto-signé)

    délivré pour Entrust Root Certification Authority par Entrust Root Certification Authority

Scénario 1

Dans ce scénario, nous allons chaîner tous les certificats fournis. Exemple d'exécution de l'outil :

Maître

Scénario 2

Dans ce scénario, nous utilisons uniquement le certificat serveur et nous l'utilisons pour récupérer les certificats requis restants. Ensuite, comme ci-dessus, nous combinerons tous les certificats fournis. Exemple d'exécution de l'outil :

Maître

Chaîne de certificats

Pour créer une chaîne valide, vous devez fournir à l'outil tous les certificats nécessaires (si vous définissez un répertoire pour le paramètre -i|--in). Ce seront :

  • Certificat serveur
  • CA intermédiaires et CA racines

C'est très important car sans cela, vous ne pourrez pas déterminer le début et la fin de la chaîne.

Si vous définissez uniquement un fichier de certificat comme valeur -i|--in, mkchain télécharge automatiquement tous les certificats nécessaires.

Cependant, si vous regardez à l'intérieur de la chaîne générée après la génération avec mkchain, vous n'y trouverez pas le certificat racine.

Pourquoi ? Parce que les certificats racines auto-signés ne doivent pas / ne devraient pas être inclus dans la configuration du serveur web. Ils ne servent à rien (les clients les ignoreront toujours) et ils entraînent une légère pénalité de performance (latence) car ils augmentent la taille de la négociation SSL.

Si vous souhaitez ajouter un certificat racine à la chaîne de certificats, appelez l'utilitaire avec le paramètre --with-root.

Chemins de certification

mkchain permet d'utiliser deux chemins de certification :

Maître

Commentaires de sortie

Lors de la génération de la chaîne de certificats, mkchain affiche des commentaires avec des informations sur les certificats, y compris les éventuelles erreurs.

Voici une liste de toutes les possibilités :

certificat d'identité (utilisateur final, serveur) non trouvé

Le message est affiché en l'absence d'un certificat serveur qui est le début de la chaîne. C'est un cas unique car dans cette situation, mkchain termine son fonctionnement en affichant uniquement cette information. Le certificat serveur est le seul certificat requis pour créer correctement une chaîne. Sans ce certificat, la chaîne correcte ne sera pas créée.

certificat d'identité (utilisateur final, serveur) correct trouvé

La situation inverse ici - message affiché lorsqu'un certificat serveur valide est trouvé.

premier certificat intermédiaire non trouvé

Ce message apparaît lorsque le premier des deux certificats intermédiaires n'est pas trouvé. Cette information ne spécifie pas explicitement l'absence d'un deuxième certificat intermédiaire et permet d'autre part de déterminer si le certificat intermédiaire auquel le certificat serveur a été signé existe. De plus, il peut être affiché si le deuxième certificat intermédiaire a été fourni.

deuxième certificat intermédiaire non trouvé

Similaire au précédent, mais concerne le deuxième certificat intermédiaire. Cependant, il est possible de créer la chaîne correctement en utilisant le deuxième chemin de certification, par exemple en utilisant le premier certificat intermédiaire et en remplaçant le second par le certificat principal.

un ou plusieurs certificats intermédiaires non trouvés

Ce message signifie qu'un ou plusieurs des certificats intermédiaires requis sont manquants et s'affiche en l'absence du certificat racine.

'n' certificat(s) intermédiaire(s) correct(s) trouvé(s)

Ce message indique le nombre de certificats intermédiaires valides.

certificat racine correct non trouvé

L'absence du certificat racine est traitée comme un avertissement. Bien sûr, lors de la configuration des certificats côté serveur, il n'est pas recommandé d'attacher un certificat racine, mais si vous créez une chaîne avec mkchain, il traite la chaîne comme incomplète en affichant des informations sur la création incorrecte de la chaîne.

un champ CN vide a été trouvé dans l'un des certificats

Ce message n'informe pas d'une erreur et de l'absence du champ CN, ce qui peut arriver avec certains certificats (regardez example/google.com). Le champ Common Name identifie le nom d'hôte associé au certificat. Il n'y a pas d'exigence dans RFC3280 pour qu'un DN d'émetteur ait un CN. La plupart des CA incluent un CN dans le DN de l'émetteur, mais certaines non, comme cette CA Equifax.

Prérequis

mkchain utilise des utilitaires externes à installer avant l'exécution :

  • OpenSSL (testé sur 1.1.0g/h)

Cet outil fonctionne avec :

  • GNU/Linux (testé sur Debian et CentOS)
  • Bash (testé sur 4.4.19)

MacOS/FreeBSD :

  • remplacez getopt(1) par une version supportant les options longues de style GNU (pkg install getopt)
  • fonctionne également sur MacOS avec greadlink de coreutils (installé via homebrew)

Autre

Contribution

Voir ceci.

Architecture du projet

Voir ceci.

Licence

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

Logiciel libre, Ouais !

Télécharger l’outil