SynthèseSummaryResumen
chkcert analyse les certificats, les chaînes de confiance, les keystores Java et les référentiels IBM MQ KDB — en local ou à distance via SFTP — puis produit des constats lisibles, des actions de remédiation priorisées et, sur demande, les commandes exactes pour les corriger. Le comportement par défaut (mots de passe, seuils de robustesse RSA, dossier de sortie, affichage des chaînes) est entièrement pilotable via un fichier constantes_V1R1M1.properties externe, sans recompilation.
chkcert analyses certificates, trust chains, Java keystores and IBM MQ KDB repositories — locally or remotely over SFTP — then produces readable findings, prioritised remediation actions and, on request, the exact commands to fix them. Default behaviour (passwords, RSA strength thresholds, output folder, chain display) is fully driven by an external constantes_V1R1M1.properties file, with no recompilation needed.
chkcert analiza los certificados, las cadenas de confianza, los almacenes Java y los repositorios IBM MQ KDB — local o remotamente vía SFTP — y produce hallazgos legibles, acciones de remediación priorizadas y, si se solicita, los comandos exactos para corregirlos. El comportamiento por defecto (contraseñas, umbrales de robustez RSA, carpeta de salida, visualización de cadenas) se controla íntegramente mediante un fichero externo constantes_V1R1M1.properties, sin recompilación.
Périmètre utilisateur — options CLIUser scope — CLI optionsAlcance de usuario — opciones CLI
| Fonction | Description | Options |
| Aide & version | Affiche l'aide complète, la version de l'outil, ou des exemples d'utilisation prêts à l'emploi. | -h/--help, --version, --examples |
| Analyse fichier | Analyse un ou plusieurs certificats, CSR ou keystores. Supporte les jokers (*.kdb, ca_*.cer) et les listes multi-fichiers. | --file |
| Analyse répertoire | Analyse récursivement tous les fichiers reconnus d'un répertoire, y compris les sous-dossiers. | --dir |
| Java cacerts | Détecte automatiquement le truststore de la JDK active (java.home, JAVA_HOME, PATH) ou analyse un JKS explicite. | --cacerts [FILE] |
| Filtrage extension | Restreint l'analyse par extension, avec alias de groupe : keystore (p12/pfx/pkcs12/kdb/p7b/jks/jck/jceks), certificate (cer/cert/crt/pem/arm/der), request (csr). | --ext |
| Filtrage contenu | Filtre par motif (insensible à la casse) sur l'alias, le CN, le subject ou l'issuer ; la vue de chaînage inclut tous les certificats liés aux correspondances. | --alias PATTERN |
| Authentification | Mot de passe explicite pour un fichier chiffré, ou usage du mot de passe stashé — mutuellement exclusifs. | --password | --stashed |
| Chaînage | Affiche les chaînes de confiance par alias, par numéro de série, ou les deux. | --chaining alias|serial|both |
| Export | Génère des sorties lisibles par machine (JSON) ou par humain (HTML), ou les deux à la fois. | --output json|html|both |
| Remédiation | Affiche un rapport priorisé (P1/P2/P3) et, en complément, la commande keytool/runmqakm exacte pour corriger chaque constat. | --report, --cmd |
| Simulation de date | Rejoue l'analyse à une date de référence différente d'aujourd'hui — date fixe ou décalage en jours. | --date YYYY-MM-DD|+N|-N |
| Affichage | Désactive les couleurs ANSI (terminaux non compatibles, redirection vers fichier) ou coupe la sortie console (jobs planifiés). | --no-color, --quiet |
| Remote | Récupère un fichier distant par SFTP et l'analyse localement — voir la section dédiée ci-dessous. | --remote et options associées |
| Function | Description | Options |
| Help & version | Shows full help, the tool's version, or ready-to-use usage examples. | -h/--help, --version, --examples |
| File analysis | Analyses one or more certificates, CSRs or keystores. Supports wildcards (*.kdb, ca_*.cer) and multi-file lists. | --file |
| Directory analysis | Recursively analyses all recognised files in a directory, including subfolders. | --dir |
| Java cacerts | Auto-detects the active JDK's truststore (java.home, JAVA_HOME, PATH) or analyses an explicit JKS file. | --cacerts [FILE] |
| Extension filtering | Restricts analysis by extension, with group aliases: keystore (p12/pfx/pkcs12/kdb/p7b/jks/jck/jceks), certificate (cer/cert/crt/pem/arm/der), request (csr). | --ext |
| Content filtering | Case-insensitive pattern filter on alias, CN, subject or issuer; the chaining view includes every certificate linked to a match. | --alias PATTERN |
| Authentication | Explicit password for an encrypted file, or use of the stashed password — mutually exclusive. | --password | --stashed |
| Chaining | Displays trust chains by alias, by serial number, or both. | --chaining alias|serial|both |
| Export | Generates machine-readable (JSON) or human-readable (HTML) output, or both at once. | --output json|html|both |
| Remediation | Prints a prioritised report (P1/P2/P3) and, on top of it, the exact keytool/runmqakm command to fix each finding. | --report, --cmd |
| Date simulation | Replays the analysis at a reference date other than today — fixed date or day offset. | --date YYYY-MM-DD|+N|-N |
| Display | Disables ANSI colours (unsupported terminals, output redirected to a file) or suppresses console output (scheduled jobs). | --no-color, --quiet |
| Remote | Fetches a remote file over SFTP and analyses it locally — see the dedicated section below. | --remote and related options |
| Función | Descripción | Opciones |
| Ayuda y versión | Muestra la ayuda completa, la versión de la herramienta, o ejemplos de uso listos para usar. | -h/--help, --version, --examples |
| Análisis de fichero | Analiza uno o varios certificados, CSR o almacenes. Admite comodines (*.kdb, ca_*.cer) y listas multi-fichero. | --file |
| Análisis de directorio | Analiza recursivamente todos los ficheros reconocidos de un directorio, incluidos los subdirectorios. | --dir |
| Java cacerts | Detecta automáticamente el almacén de confianza de la JDK activa (java.home, JAVA_HOME, PATH) o analiza un JKS explícito. | --cacerts [FILE] |
| Filtrado por extensión | Restringe el análisis por extensión, con alias de grupo: keystore (p12/pfx/pkcs12/kdb/p7b/jks/jck/jceks), certificate (cer/cert/crt/pem/arm/der), request (csr). | --ext |
| Filtrado de contenido | Filtro por patrón (sin distinguir mayúsculas) sobre el alias, CN, subject o issuer; la vista de cadena incluye todos los certificados vinculados a las coincidencias. | --alias PATTERN |
| Autenticación | Contraseña explícita para un fichero cifrado, o uso de la contraseña «stashed» — mutuamente excluyentes. | --password | --stashed |
| Encadenamiento | Muestra las cadenas de confianza por alias, por número de serie, o ambos. | --chaining alias|serial|both |
| Exportación | Genera salidas legibles por máquina (JSON) o por humano (HTML), o ambas a la vez. | --output json|html|both |
| Remediación | Muestra un informe priorizado (P1/P2/P3) y, además, el comando keytool/runmqakm exacto para corregir cada hallazgo. | --report, --cmd |
| Simulación de fecha | Repite el análisis con una fecha de referencia distinta de hoy — fecha fija o desfase en días. | --date YYYY-MM-DD|+N|-N |
| Visualización | Desactiva los colores ANSI (terminales no compatibles, redirección a fichero) o suprime la salida de consola (tareas planificadas). | --no-color, --quiet |
| Remoto | Recupera un fichero remoto vía SFTP y lo analiza localmente — ver la sección dedicada más abajo. | --remote y opciones asociadas |
Exécution distante (SSH / SFTP)Remote execution (SSH / SFTP)Ejecución remota (SSH / SFTP)
Requiert le module paramiko. Le fichier distant est récupéré par SFTP puis analysé localement ; les sorties JSON/HTML sont écrites sur la machine locale. Recommandé : authentification par clé plutôt que par mot de passe.
Requires the paramiko module. The remote file is fetched over SFTP and analysed locally; JSON/HTML outputs are written on the local machine. Key-based authentication is recommended over password.
Requiere el módulo paramiko. El fichero remoto se recupera vía SFTP y se analiza localmente; las salidas JSON/HTML se escriben en la máquina local. Se recomienda la autenticación por clave en lugar de contraseña.
| Option | Rôle | Défaut |
--remote HOST | Hostname ou IP du serveur distant. | — |
--remote-port PORT | Port SSH du serveur distant. | 22 |
--remote-user USER | Nom d'utilisateur SSH. | — |
--remote-key KEYFILE | Chemin de la clé privée SSH (recommandé). | — |
--remote-pass PASSWORD | Mot de passe SSH (à éviter au profit de --remote-key). | — |
--remote-timeout SECONDS | Délai de connexion SSH — à augmenter pour un serveur lent ou distant. | 30 s |
--trust-new-host | Accepte et met en cache une clé d'hôte SSH inconnue lors de la première connexion (anti-MITM sur les connexions suivantes via known_hosts). | désactivé |
| Option | Role | Default |
--remote HOST | Hostname or IP of the remote server. | — |
--remote-port PORT | SSH port on the remote server. | 22 |
--remote-user USER | SSH username. | — |
--remote-key KEYFILE | Path to the SSH private key file (recommended). | — |
--remote-pass PASSWORD | SSH password (prefer --remote-key instead). | — |
--remote-timeout SECONDS | SSH connection timeout — increase for a slow or distant server. | 30s |
--trust-new-host | Accepts and caches an unknown SSH host key on first connection (anti-MITM on subsequent runs via known_hosts). | disabled |
| Opción | Función | Por defecto |
--remote HOST | Hostname o IP del servidor remoto. | — |
--remote-port PORT | Puerto SSH del servidor remoto. | 22 |
--remote-user USER | Usuario SSH. | — |
--remote-key KEYFILE | Ruta de la clave privada SSH (recomendado). | — |
--remote-pass PASSWORD | Contraseña SSH (mejor usar --remote-key). | — |
--remote-timeout SECONDS | Tiempo de espera de conexión SSH — aumentar para servidores lentos o distantes. | 30 s |
--trust-new-host | Acepta y almacena en caché una clave de host SSH desconocida en la primera conexión (anti-MITM en conexiones siguientes vía known_hosts). | desactivado |
Formats pris en chargeSupported formatsFormatos soportados
.pem.cer.cert.crt.arm.der
.p12.pfx.pkcs12.kdb.jks.jck.jceks
.p7b.cms.csr
Résultats attendusExpected outputsResultados esperados
| Sortie | Usage | Contenu |
| Console | Lecture immédiate pendant l'analyse. | Certificats, warnings, errors, chaînes et résumé. |
| JSON | Automatisation et intégration inventaire. | Métadonnées certificat, warnings, errors, actions et chaînes. |
| HTML | Rapport humain autonome. | Tableaux certificats, remédiation, chaînes, warnings et errors. |
Sans --output explicite, un run --quiet retombe sur le format défini par OUTPUT_FORMAT_DFT (constantes_V1R1M1.properties, défaut html). Chaque export est classé automatiquement sous <racine>/html/<YYYYMMDD>/<ext>/ et <racine>/json/<YYYYMMDD>/<ext>/ (dossiers summary/ dédiés pour les analyses multi-fichiers) — la racine et la date suivent --date si actif.
| Output | Use | Content |
| Console | Immediate reading during analysis. | Certificates, warnings, errors, chains and summary. |
| JSON | Automation and inventory integration. | Certificate metadata, warnings, errors, action items and chains. |
| HTML | Standalone human report. | Certificate tables, remediation, chains, warnings and errors. |
Without an explicit --output, a --quiet run falls back to the format defined by OUTPUT_FORMAT_DFT (constantes_V1R1M1.properties, default html). Every export is filed automatically under <root>/html/<YYYYMMDD>/<ext>/ and <root>/json/<YYYYMMDD>/<ext>/ (dedicated summary/ folders for multi-file runs) — root and date follow --date when active.
| Salida | Uso | Contenido |
| Consola | Lectura inmediata durante el análisis. | Certificados, warnings, errors, cadenas y resumen. |
| JSON | Automatización e integración de inventario. | Metadatos del certificado, warnings, errors, acciones y cadenas. |
| HTML | Informe humano autónomo. | Tablas de certificados, remediación, cadenas, warnings y errors. |
Sin --output explícito, una ejecución --quiet recae en el formato definido por OUTPUT_FORMAT_DFT (constantes_V1R1M1.properties, por defecto html). Cada exportación se clasifica automáticamente bajo <raíz>/html/<YYYYMMDD>/<ext>/ y <raíz>/json/<YYYYMMDD>/<ext>/ (carpetas summary/ dedicadas para análisis multi-fichero) — la raíz y la fecha siguen a --date si está activo.
Configuration — constantes_V1R1M1.propertiesConfiguration — constantes_V1R1M1.propertiesConfiguración — constantes_V1R1M1.properties
Fichier externe optionnel, chargé au démarrage — permet d'ajuster le comportement de chkcert sans recompiler le binaire Nuitka ni modifier le source Python. Toute clé absente ou invalide retombe silencieusement sur sa valeur par défaut intégrée.
Optional external file, loaded at startup — lets you adjust chkcert's behaviour without recompiling the Nuitka binary or touching the Python source. Any missing or invalid key silently falls back to its built-in default.
Fichero externo opcional, cargado al inicio — permite ajustar el comportamiento de chkcert sin recompilar el binario Nuitka ni tocar el código fuente Python. Cualquier clave ausente o inválida recae silenciosamente en su valor por defecto integrado.
| Clé | Rôle | Défaut |
PASSWORD_DFT | Mot de passe par défaut essayé pour les keystores chiffrés (.kdb/.cms/.p12/.pfx/.p7b/.jks/.jck/.jceks) quand aucun --password n'est fourni. | changeit |
MIN_RSA_KEY_SIZE | Taille RSA minimale acceptée en validation ; en-dessous, un warning est levé. Plancher absolu non contournable : 2048 bits. | 2048 |
CMD_RSA_KEY_SIZE | Taille RSA utilisée dans les commandes de renouvellement CSR suggérées (--cmd). Doit être ≥ MIN_RSA_KEY_SIZE. | 4096 |
W_FLD_TARGET_ANA_CER | Dossier racine de sortie sous Windows. Supporte le placeholder %USER% (résolu depuis USERNAME). | <script_dir> |
U_FLD_TARGET_ANA_CER | Dossier racine de sortie sous Unix/Linux/macOS. Supporte le placeholder ${user} (résolu depuis USER, repli getpass.getuser()). | <script_dir> |
INDEX_ALIAS_SERIAL | Affiche le numéro de série entre parenthèses à côté de l'alias dans la vue de chaînage par alias. | true |
INDEX_SERIAL_ALIAS | Affiche l'alias entre parenthèses à côté du numéro de série dans la vue de chaînage par serial. | true |
OUTPUT_FORMAT_DFT | Format d'export utilisé quand --quiet est actif sans --output explicite. | html |
Les deux clés *_FLD_TARGET_ANA_CER sont sélectionnées automatiquement selon la plateforme d'exécution ; la clé de l'autre OS est ignorée. Le dossier cible est créé automatiquement s'il n'existe pas.
| Key | Role | Default |
PASSWORD_DFT | Default password attempted for encrypted keystores (.kdb/.cms/.p12/.pfx/.p7b/.jks/.jck/.jceks) when no --password is supplied. | changeit |
MIN_RSA_KEY_SIZE | Minimum RSA size accepted during validation; below it, a warning is raised. Non-overridable absolute floor: 2048 bits. | 2048 |
CMD_RSA_KEY_SIZE | RSA size used in the suggested CSR renewal commands (--cmd). Must be ≥ MIN_RSA_KEY_SIZE. | 4096 |
W_FLD_TARGET_ANA_CER | Output root folder on Windows. Supports the %USER% placeholder (resolved from USERNAME). | <script_dir> |
U_FLD_TARGET_ANA_CER | Output root folder on Unix/Linux/macOS. Supports the ${user} placeholder (resolved from USER, fallback getpass.getuser()). | <script_dir> |
INDEX_ALIAS_SERIAL | Shows the serial number in parentheses next to the alias in the alias-based chaining view. | true |
INDEX_SERIAL_ALIAS | Shows the alias in parentheses next to the serial number in the serial-based chaining view. | true |
OUTPUT_FORMAT_DFT | Export format used when --quiet is active without an explicit --output. | html |
The two *_FLD_TARGET_ANA_CER keys are auto-selected based on the runtime platform; the other OS's key is ignored. The target folder is created automatically if it does not exist.
| Clave | Función | Por defecto |
PASSWORD_DFT | Contraseña por defecto probada en almacenes cifrados (.kdb/.cms/.p12/.pfx/.p7b/.jks/.jck/.jceks) cuando no se indica --password. | changeit |
MIN_RSA_KEY_SIZE | Tamaño RSA mínimo aceptado en la validación; por debajo se genera un warning. Límite absoluto no ajustable: 2048 bits. | 2048 |
CMD_RSA_KEY_SIZE | Tamaño RSA usado en los comandos de renovación CSR sugeridos (--cmd). Debe ser ≥ MIN_RSA_KEY_SIZE. | 4096 |
W_FLD_TARGET_ANA_CER | Carpeta raíz de salida en Windows. Admite el placeholder %USER% (resuelto desde USERNAME). | <script_dir> |
U_FLD_TARGET_ANA_CER | Carpeta raíz de salida en Unix/Linux/macOS. Admite el placeholder ${user} (resuelto desde USER, alternativa getpass.getuser()). | <script_dir> |
INDEX_ALIAS_SERIAL | Muestra el número de serie entre paréntesis junto al alias en la vista de encadenamiento por alias. | true |
INDEX_SERIAL_ALIAS | Muestra el alias entre paréntesis junto al número de serie en la vista de encadenamiento por serial. | true |
OUTPUT_FORMAT_DFT | Formato de exportación usado cuando --quiet está activo sin --output explícito. | html |
Las dos claves *_FLD_TARGET_ANA_CER se seleccionan automáticamente según la plataforma de ejecución; la clave del otro SO se ignora. La carpeta de destino se crea automáticamente si no existe.
Obtenir une licenceGet a licenceObtener una licencia
Contacter JokerSoft pour une licence complète. La référence du produit est chkcert_V1R1M1.
Contact JokerSoft for a full licence. The product reference is chkcert_V1R1M1.
Contactar con JokerSoft para una licencia completa. La referencia del producto es chkcert_V1R1M1.
licence@jokersoft.com
Dossier d'exploitationOperations folderCarpeta de explotación
Utiliser un dossier d'exploitation dédié avec accès restreint. Séparer les fichiers d'entrée, les rapports, les fichiers temporaires et les logs. La racine des rapports générés (reports/ ci-dessous) correspond au dossier défini par W_FLD_TARGET_ANA_CER / U_FLD_TARGET_ANA_CER dans les properties.
Use a dedicated operations folder with restricted access. Keep input files, reports, temporary files and logs separated. The generated-reports root (reports/ below) matches the folder defined by W_FLD_TARGET_ANA_CER / U_FLD_TARGET_ANA_CER in the properties.
Usar una carpeta de explotación dedicada con acceso restringido. Separar los ficheros de entrada, los informes, los ficheros temporales y los logs. La raíz de los informes generados (reports/ abajo) corresponde a la carpeta definida por W_FLD_TARGET_ANA_CER / U_FLD_TARGET_ANA_CER en las properties.
| Zone | Recommandation | Confidentialité / sécurité |
bin/ | Script ou binaire compilé. | Lecture/exécution pour les opérateurs ; écriture réservée aux administrateurs. |
properties/ | Fichiers de configuration contrôlés. | Modification restreinte et changements tracés. |
input/ | Certificats, CSR et keystores à analyser. | Éviter les clés privées ou secrets non nécessaires. |
reports/ | Exports HTML/JSON et résumés (racine pilotée par les properties). | À traiter comme documents internes sensibles. |
tmp/ | Fichiers intermédiaires d'extraction. | Nettoyage automatique ou purge planifiée. |
logs/ | Traces d'exécution si activées. | Aucun mot de passe, passphrase, clé privée ou token. |
| Area | Recommendation | Confidentiality / security |
bin/ | Script or compiled binary. | Read/execute for operators; write access for administrators only. |
properties/ | Controlled configuration files. | Restricted modification and change tracking. |
input/ | Certificates, CSR and keystores to analyse. | Avoid unnecessary private keys or secrets. |
reports/ | HTML/JSON outputs and summaries (root driven by properties). | Treat as internal sensitive documents. |
tmp/ | Intermediate extraction files. | Automatic cleanup or scheduled purge. |
logs/ | Execution traces if enabled. | No passwords, passphrases, private keys or tokens. |
| Zona | Recomendación | Confidencialidad / seguridad |
bin/ | Script o binario compilado. | Lectura/ejecución para operadores; escritura reservada a administradores. |
properties/ | Ficheros de configuración controlados. | Modificación restringida y cambios trazados. |
input/ | Certificados, CSR y almacenes a analizar. | Evitar claves privadas o secretos innecesarios. |
reports/ | Exportaciones HTML/JSON y resúmenes (raíz definida por las properties). | Tratar como documentos internos sensibles. |
tmp/ | Ficheros intermedios de extracción. | Limpieza automática o purga planificada. |
logs/ | Trazas de ejecución si están activadas. | Sin contraseñas, passphrases, claves privadas ni tokens. |
Sécurité anti-manipulationAnti-tampering securitySeguridad anti-manipulación
La protection anti-contournement est active. Toute modification bloque l'exécution.
The anti-tampering protection is active. Any modification blocks execution.
La protección anti-manipulación está activa. Cualquier modificación bloquea la ejecución.
Commande de référenceReference commandComando de referencia
chkcert --dir keyrepos/ --ext keystore csr pem --chaining both --report --cmd --output both --date +90chkcert --dir keyrepos/ --ext keystore csr pem --chaining both --report --cmd --output both --date +90chkcert --dir keyrepos/ --ext keystore csr pem --chaining both --report --cmd --output both --date +90