Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
mkchain — Herramienta de código abierto para ayudarte a construir una cadena de certificados SSL válida. | Kitploit
Herramientas/GitHubGitHub/trimstray/mkchain
Herramientas de Cifrado/DescifradoCriptografíaUtilidades y Frameworks
GitHubtrimstray/mkchain

mkchain

Herramienta de código abierto para ayudarte a construir una cadena de certificados SSL válida.

Ver Repositorio
38152hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

mkchain

Herramienta de código abierto para ayudarte a construir una cadena de certificados SSL válida.

Travis-CI Version License

Descripción • Cómo usar • Parámetros • Cómo funciona • Requisitos • Otros • Licencia


Principal

Descripción

Es una herramienta de código abierto para ayudarte a construir una cadena de certificados SSL válida. También puede ayudarte a corregir la cadena incompleta y descargar todos los certificados CA faltantes. También puedes descargar todos los certificados de un servidor remoto y obtener tu cadena de certificados correcta.

Cómo usar

Es 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
  • el enlace simbólico a bin/mkchain se coloca en /usr/local/bin
  • la página del manual se coloca en /usr/local/man/man8

Parámetros

Proporciona las siguientes opciones:

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 - sin este parámetro, mkchain guarda la cadena de salida en el directorio mkchain/chains/.

Cómo funciona

Antes de leerlo, consulta el artículo sobre Cadena de Certificados SSL.

Comencemos con la cadena de certificados de ssllabs. Se entregan junto con mkchain y se pueden encontrar en el directorio example/ssllabs.com que además contiene el directorio all (que contiene todos los certificados necesarios para ensamblar la cadena) y el directorio server_certificate (que contiene solo el certificado del servidor).

La cadena correcta para el dominio ssllabs.com (resultado 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

El código anterior presenta una cadena completa que consiste en:

  • Certificado de identidad (Certificado de servidor)

    emitido para ssllabs.com por Entrust Certification Authority - L1K

  • Certificado intermedio

    emitido para Entrust Certification Authority - L1K por Entrust Root Certification Authority - G2

  • Certificado intermedio

    emitido para Entrust Root Certification Authority - G2 por Entrust Root Certification Authority

  • Certificado raíz (Certificado autofirmado)

    emitido para Entrust Root Certification Authority por Entrust Root Certification Authority

Escenario 1

En este escenario, encadenaremos todos los certificados entregados. Ejemplo de ejecución de la herramienta:

Principal

Escenario 2

En este escenario, solo usamos el certificado del servidor y lo utilizamos para recuperar los certificados restantes necesarios. Luego, como antes, combinaremos todos los certificados proporcionados. Ejemplo de ejecución de la herramienta:

Principal

Cadena de certificados

Para crear una cadena válida, debes proporcionar a la herramienta todos los certificados necesarios (si estableces un directorio para el parámetro -i|--in). Serán:

  • Certificado del servidor
  • CA intermedios y CA raíz

Esto es muy importante porque sin ellos no podrás determinar el inicio y el final de la cadena.

Si solo estableces un archivo de certificado como valor para -i|--in, mkchain descarga automáticamente todos los certificados necesarios.

Sin embargo, si observas dentro de la cadena generada después de generar con mkchain, no encontrarás el certificado raíz allí.

¿Por qué? Porque los certificados raíz autofirmados no necesitan/deben incluirse en la configuración del servidor web. No sirven para nada (los clientes siempre los ignorarán) e incurren en una ligera penalización de rendimiento (latencia) porque aumentan el tamaño del handshake SSL.

Si deseas agregar un certificado raíz a la cadena de certificados, ejecuta la utilidad con el parámetro --with-root.

Rutas de certificación

mkchain permite usar dos rutas de certificación:

Principal

Comentarios de salida

Al generar la cadena de certificados, mkchain muestra comentarios con información sobre los certificados, incluidos posibles errores.

Aquí tienes una lista de todas las posibilidades:

no se encontró el certificado de identidad (usuario final, servidor)

El mensaje se muestra en ausencia de un certificado de servidor que sea el inicio de la cadena. Este es un caso único porque en esta situación mkchain finaliza su operación mostrando solo esta información. El certificado del servidor es el único certificado necesario para crear correctamente una cadena. Sin este certificado, no se creará la cadena correcta.

se encontró el certificado de identidad correcto (usuario final, servidor)

La situación inversa aquí: mensaje mostrado cuando se encuentra un certificado de servidor válido.

no se encontró el primer certificado intermedio

Este mensaje aparece cuando no se encuentra el primero de los dos certificados intermedios. Esta información no especifica explícitamente la ausencia de un segundo certificado intermedio y, por otro lado, permite determinar si existe el certificado intermedio al que se firmó el certificado del servidor. Además, puede mostrarse si se ha entregado el segundo certificado intermedio.

no se encontró el segundo certificado intermedio

Similar al anterior, pero se refiere al segundo certificado intermedio. Sin embargo, es posible crear la cadena correctamente utilizando la segunda ruta de certificación, por ejemplo, usando el primer certificado intermedio y reemplazando el segundo por el certificado principal.

uno o más certificados intermedios no encontrados

Este mensaje significa que falta uno o todos los certificados intermedios necesarios y se muestra en ausencia del certificado raíz.

se encontraron 'n' certificados intermedios correctos

Este mensaje indica la cantidad de certificados intermedios válidos.

no se encontró el certificado raíz correcto

La falta del certificado raíz se trata como una advertencia. Por supuesto, al configurar certificados en el lado del servidor, no se recomienda adjuntar un certificado raíz, pero si lo creas con mkchain, trata la cadena como incompleta mostrando información sobre la creación incorrecta de la cadena.

se encontró un campo CN vacío en uno de los certificados

Este mensaje no informa sobre el error ni sobre la falta del campo CN, lo que puede ocurrir con algunos certificados (consulta example/google.com). El campo Common Name identifica el nombre de host asociado con el certificado. No hay requisito en RFC3280 de que un DN emisor tenga un CN. La mayoría de las CA incluyen un CN en el DN emisor, pero algunas no, como esta CA de Equifax.

Requisitos

mkchain utiliza utilidades externas que deben instalarse antes de ejecutarlo:

  • OpenSSL (probado en 1.1.0g/h)

Esta herramienta funciona con:

  • GNU/Linux (probado en Debian y CentOS)
  • Bash (probado en 4.4.19)

MacOS/FreeBSD:

  • reemplazar por getopt(1) que soporte opciones largas GNU (pkg install getopt)
  • también funciona en MacOS con greadlink de coreutils (instalado mediante homebrew)

Otros

Contribuciones

Véase este.

Arquitectura del proyecto

Véase este.

Licencia

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

Software libre, ¡Sí!

Descargar herramienta