Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
mkchain — Strumento open source per aiutarti a costruire una catena di certificati SSL valida. | Kitploit
Strumenti/GitHubGitHub/trimstray/mkchain
Strumenti di Crittografia/DecrittografiaCrittografiaUtilità e Framework
GitHubtrimstray/mkchain

mkchain

Strumento open source per aiutarti a costruire una catena di certificati SSL valida.

Vedi Repository
381521 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

mkchain

Strumento open source per aiutarti a costruire una catena di certificati SSL valida.

Travis-CI Version License

Descrizione • Come Usare • Parametri • Come Funziona • Requisiti • Altro • Licenza


Master

Descrizione

È uno strumento open source per aiutarti a costruire una catena di certificati SSL valida. Può anche aiutarti a correggere la catena incompleta e scaricare tutti i certificati CA mancanti. Puoi anche scaricare tutti i certificati da un server remoto e ottenere la catena di certificati corretta.

Come Usare

È semplice:

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

# Entra nel repository
cd mkchain

# Installa
./setup.sh install

# Esegui l'app
mkchain -i /data/certs -o /data/chain.crt
  • il collegamento simbolico a bin/mkchain è posto in /usr/local/bin
  • la pagina man è posta in /usr/local/man/man8

Parametri

Fornisce le seguenti opzioni:

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        mostra questo messaggio
        --debug       visualizza informazioni sullo schermo (modalità debug)
    -i, --in          aggiungi certificati da unire (file, file multipli, directory con certificati SSL
                      o dominio remoto)
    -o, --out         salva il risultato (catena) in un file
        --with-root   aggiungi il certificato radice alla catena di certificati

-o|--out - senza questo parametro mkchain salva la catena di output nella directory mkchain/chains/.

Come Funziona

Prima di leggere, consulta l'articolo su Catena di Certificati SSL.

Iniziamo con la catena di certificati ssllabs. Sono forniti insieme a mkchain e si trovano nella directory example/ssllabs.com che contiene inoltre la directory all (contenente tutti i certificati necessari per assemblare la catena) e la directory server_certificate (contenente solo il certificato del server).

La catena corretta per il dominio ssllabs.com (risultato del comando 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

Il codice sopra presenta una catena completa composta da:

  • Certificato di Identità (Certificato del Server)

    emesso per ssllabs.com da Entrust Certification Authority - L1K

  • Certificato Intermedio

    emesso per Entrust Certification Authority - L1K da Entrust Root Certification Authority - G2

  • Certificato Intermedio

    emesso per Entrust Root Certification Authority - G2 da Entrust Root Certification Authority

  • Certificato Radice (Certificato Autofirmato)

    emesso per Entrust Root Certification Authority da Entrust Root Certification Authority

Scenario 1

In questo scenario, colleghiamo a catena tutti i certificati forniti. Esempio di esecuzione dello strumento:

Master

Scenario 2

In questo scenario, utilizziamo solo il certificato del server e lo usiamo per recuperare i restanti certificati necessari. Poi, come sopra, combiniamo tutti i certificati forniti. Esempio di esecuzione dello strumento:

Master

Catena di Certificati

Per creare una catena valida, devi fornire allo strumento tutti i certificati necessari (se imposti una directory per il parametro -i|--in). Questi saranno:

  • Certificato del Server
  • CA Intermedie e CA Radice

Questo è molto importante perché senza di essi non sarai in grado di determinare l'inizio e la fine della catena.

Se imposti solo un file di certificato come valore di -i|--in, mkchain scarica automaticamente tutti i certificati necessari.

Tuttavia, se guardi all'interno della catena generata dopo la generazione con mkchain, non troverai il certificato radice.

Perché? Perché i certificati radice autofirmati non devono/non dovrebbero essere inclusi nella configurazione del server web. Non servono a nulla (i client li ignoreranno sempre) e causano un leggero calo di prestazioni (latenza) perché aumentano le dimensioni dell'handshake SSL.

Se vuoi aggiungere un certificato radice alla catena di certificati, chiama l'utility con il parametro --with-root.

Percorsi di Certificazione

mkchain permette l'utilizzo di due percorsi di certificazione:

Master

Commenti di Output

Durante la generazione della catena di certificati, mkchain visualizza commenti con informazioni sui certificati, inclusi eventuali errori.

Ecco l'elenco di tutte le possibilità:

certificato di identità (utente finale, server) non trovato

Il messaggio viene visualizzato in assenza di un certificato del server che è l'inizio della catena. Questo è un caso unico perché in questa situazione mkchain termina la sua operazione mostrando solo queste informazioni. Il certificato del server è l'unico certificato necessario per creare correttamente una catena. Senza questo certificato, la catena corretta non verrà creata.

certificato di identità (utente finale, server) corretto trovato

La situazione opposta qui: messaggio visualizzato quando viene trovato un certificato del server valido.

primo certificato intermedio non trovato

Questo messaggio appare quando il primo dei due certificati intermedi non viene trovato. Questa informazione non specifica esplicitamente l'assenza di un secondo certificato intermedio e d'altra parte permette di determinare se esiste il certificato intermedio a cui è stato firmato il certificato del server. Inoltre, può essere visualizzato se il secondo certificato intermedio è stato fornito.

secondo certificato intermedio non trovato

Simile al precedente, ma riguarda il secondo certificato intermedio. Tuttavia, è possibile creare correttamente la catena utilizzando il secondo percorso di certificazione, ad es. usando il primo certificato intermedio e sostituendo il secondo con il certificato principale.

uno o più certificati intermedi non trovati

Questo messaggio significa che uno o tutti i certificati intermedi richiesti sono mancanti e viene visualizzato in assenza del certificato radice.

trovati 'n' certificati intermedi corretti

Questo messaggio indica il numero di certificati intermedi validi.

certificato radice corretto non trovato

La mancanza del certificato radice viene trattata come un avviso. Naturalmente, quando si configurano i certificati sul lato server, non è consigliato allegare un certificato radice, ma se lo si crea con mkchain, lo tratta come una catena incompleta mostrando informazioni sulla creazione errata della catena.

trovato un campo CN vuoto in uno dei certificati

Questo messaggio non informa dell'errore, ma dell'assenza del campo CN, cosa che può accadere con alcuni certificati (guarda example/google.com). Il campo Common Name identifica il nome host associato al certificato. Non esiste alcun requisito in RFC3280 che un Issuer DN debba avere un CN. La maggior parte delle CA include un CN nell'Issuer DN, ma alcune no, come questa CA Equifax.

Requisiti

mkchain utilizza utility esterne da installare prima dell'esecuzione:

  • OpenSSL (testato su 1.1.0g/h)

Questo strumento funziona con:

  • GNU/Linux (testato su Debian e CentOS)
  • Bash (testato su 4.4.19)

MacOS/FreeBSD:

  • sostituire getopt(1) con una versione che supporti le opzioni lunghe in stile GNU (pkg install getopt)
  • funziona anche su MacOS con greadlink da coreutils (installato tramite homebrew)

Altro

Contribuire

Vedi questo.

Architettura del progetto

Vedi questo.

Licenza

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

Software libero, Evviva!

Scarica lo strumento