chkcert_V1R1M1 — Prérequis d'utilisationchkcert_V1R1M1 — Prerequisites
Objectif du documentDocument purpose
Ce document décrit les prérequis nécessaires pour utiliser chkcert_V1R1M1 sur des plateformes Windows, Unix/Linux et macOS. Il précise les composants attendus, les versions recommandées, les outils externes indispensables et les limites connues de cette version.
This document describes the prerequisites required to use chkcert_V1R1M1 on Windows, Unix/Linux and macOS platforms. It specifies the expected components, recommended versions, mandatory external tools and known limitations of this version.
L'outil est conçu comme un point d'analyse central pour des certificats et keystores provenant de plusieurs plateformes cibles. Un poste Windows peut analyser des fichiers copiés depuis Unix, un serveur Unix peut analyser des keystores Java ou IBM MQ, et macOS peut être utilisé comme poste d'analyse lorsque les outils externes requis sont disponibles.
The tool is designed as a central analysis point for certificates and keystores from multiple target platforms. A Windows workstation can analyse files copied from Unix, a Unix server can analyse Java or IBM MQ keystores, and macOS can be used as an analysis workstation when the required external tools are available.
Composants et versions recommandéesComponents and recommended versions
| ComposantComponent | Version / présence attendueVersion / expected presence | Utilisation dans chkcertUsage in chkcert | Remarque d'exploitationOperational note |
|---|---|---|---|
Python | Python 3.10 ou supérieur recommandéPython 3.10 or higher recommended | Exécution du script principal, parsing, CLI, génération console / JSON / HTML.Main script execution, parsing, CLI, console / JSON / HTML generation. | Utiliser une version maintenue et patchée. Vérifier avec python --version ou python3 --version.Use a maintained and patched version. Check with python --version or python3 --version. |
cryptography | Module Python requisRequired Python module | Chargement et contrôle des certificats X.509, PKCS7, clés publiques et signatures de certificats.Loading and checking of X.509, PKCS7 certificates, public keys and certificate signatures. | Installer dans l'environnement Python actif. Vérifier avec python -m pip show cryptography.Install in the active Python environment. Check with python -m pip show cryptography. |
paramiko | Module Python optionnelOptional Python module | Mode remote SSH/SFTP lorsque --remote est utilisé.Remote SSH/SFTP mode when --remote is used. | Le mode remote n'a pas encore été testé dans cette version. À qualifier avant usage de production.Remote mode has not yet been tested in this version. Must be qualified before production use. |
colorama | Module Python optionnelOptional Python module | Confort d'affichage couleur, surtout sous Windows.Colour display comfort, especially on Windows. | Le script prévoit une gestion ANSI/fallback ; ce module reste utile pour stabiliser la console Windows.The script includes ANSI/fallback handling; this module helps stabilise the Windows console. |
OpenJDK / JDK / JRE | Java 17+ recommandé, Java 21 LTS conseillé en exploitation récenteJava 17+ recommended, Java 21 LTS advised for recent deployments | Fournit keytool et permet l'analyse des keystores Java et du magasin cacerts.Provides keytool and enables analysis of Java keystores and the cacerts truststore. | Vérifier java -version et keytool -help. Configurer JAVA_HOME et PATH si nécessaire.Check java -version and keytool -help. Configure JAVA_HOME and PATH if needed. |
IBM MQ / GSKit | Version compatible avec les KDB/CMS à analyserVersion compatible with the KDB/CMS to be analysed | Fournit runmqakm, runmqckm ou commandes GSKit équivalentes.Provides runmqakm, runmqckm or equivalent GSKit commands. | Indispensable pour les magasins IBM MQ .kdb. Les bibliothèques GSKit doivent être accessibles au runtime.Essential for IBM MQ .kdb keystores. GSKit libraries must be accessible at runtime. |
constantes_V1R1M1.properties | Fichier de configuration externeExternal configuration file | Paramètres d'exploitation : dossiers de sortie, taille minimale RSA, valeurs par défaut.Operational parameters: output folders, minimum RSA size, default values. | Fichier attendu dans C:\Tools\python\properties\ dans l'environnement documenté.File expected in C:\Tools\python\properties\ in the documented environment. |
class_bcolors.py | Module de couleurs consoleConsole colour module | Palette et rendu lisible en console.Colour palette and readable console rendering. | Permet d'adapter le rendu selon le terminal sans modifier le cœur fonctionnel.Allows rendering to be adapted per terminal without modifying the core functionality. |
Outils externes critiquesCritical external tools
| OutilTool | Formats concernésConcerned formats | Pourquoi il est importantWhy it matters | Contrôle rapideQuick check |
|---|---|---|---|
| keytool | JKS, JCEKS, PKCS12, cacerts | Outil Java de référence pour lister et exporter les certificats depuis les keystores Java. Il est central pour les environnements applicatifs Java, middleware et serveurs d'application.Java reference tool for listing and exporting certificates from Java keystores. Central to Java application environments, middleware and application servers. | keytool -help |
| runmqakm | KDB, CMS, certificats IBM MQ | Outil IBM MQ/GSKit privilégié pour interroger les magasins de certificats MQ. Il permet de traiter les formats que keytool ne sait pas couvrir correctement.Preferred IBM MQ/GSKit tool for querying MQ certificate stores. Handles formats that keytool cannot cover correctly. | runmqakm -version ou runmqakm -help |
| runmqckm | KDB, CMS | Alternative IBM MQ/GSKit utile selon les installations et versions disponibles.Useful IBM MQ/GSKit alternative depending on available installations and versions. | runmqckm -help |
| gsk8capicmd_64 / gsk8capicmd | KDB, CMS | Commandes GSKit détectées comme options de secours dans les environnements IBM.GSKit commands detected as fallback options in IBM environments. | gsk8capicmd_64 -help |
Plateformes supportées et logique inter-ciblesSupported platforms and cross-target logic
| Plateforme d'exécutionExecution platform | Capacité attendueExpected capability | Points d'attentionPoints of attention |
|---|---|---|
| Windows | Exécution du script Python, analyse de fichiers locaux, rapports HTML/JSON, support Java si keytool.exe est dans le PATH.Python script execution, local file analysis, HTML/JSON reports, Java support if keytool.exe is in PATH. | Vérifier l'encodage console, JAVA_HOME, chemins avec espaces et droits sur le dossier de sortie.Check console encoding, JAVA_HOME, paths with spaces and output folder permissions. |
| Unix / Linux | Exécution serveur ou poste d'analyse, très adaptée aux chaînes d'exploitation et aux dépôts de certificats centralisés.Server or analysis workstation execution, well-suited to operational chains and centralised certificate repositories. | Vérifier PATH, permissions fichiers, variables IBM MQ/GSKit et bibliothèques partagées.Check PATH, file permissions, IBM MQ/GSKit variables and shared libraries. |
| macOS | Exécution possible comme poste d'analyse Python/Java, avec fichiers importés depuis d'autres plateformes.Possible use as a Python/Java analysis workstation, with files imported from other platforms. | Installer un JDK et les modules Python requis. Les outils IBM MQ/GSKit dépendent de la disponibilité fournisseur.Install a JDK and the required Python modules. IBM MQ/GSKit tools depend on vendor availability. |
| Inter-ciblesCross-target | Analyse de keystores provenant de Windows, Unix/Linux, macOS, environnements Java, IBM MQ et PKI internes.Analysis of keystores from Windows, Unix/Linux, macOS, Java environments, IBM MQ and internal PKI. | Le fichier peut être analysé hors de sa machine d'origine si les mots de passe, fichiers associés et outils compatibles sont disponibles.The file can be analysed away from its original machine if the passwords, associated files and compatible tools are available. |
Formats et usages couvertsCovered formats and usages
- Certificats unitaires :
.cer,.crt,.pem,.derselon le contenu et la détection.Individual certificates:.cer,.crt,.pem,.derby content and detection. - Chaînes et bundles : fichiers PEM multi-certificats et sorties de chaînage.Chains and bundles: multi-certificate PEM files and chaining outputs.
- Keystores Java :
JKS,JCEKS,PKCS12, avec dépendance forte àkeytool.Java keystores:JKS,JCEKS,PKCS12, with strong dependency onkeytool. - Magasins IBM MQ / GSKit :
KDB/CMS, avec dépendance forte àrunmqakmou commande compatible.IBM MQ / GSKit stores:KDB/CMS, with strong dependency onrunmqakmor compatible command. - Magasin Java
cacerts: détection via Java,JAVA_HOMEou emplacement de l'exécutablejava.Javacacertstruststore: detected via Java,JAVA_HOMEorjavaexecutable location. - Sorties d'exploitation : console, HTML, JSON, avec une arborescence datée par type de sortie.Operational outputs: console, HTML, JSON, with a date-structured tree by output type.
Limites connues de cette versionKnown limitations of this version
| LimiteLimitation | ImpactImpact | Action recommandéeRecommended action |
|---|---|---|
| Remote non qualifiéRemote not qualified | Le mode remote existe dans le script, mais il n'a pas encore été testé dans cette version.Remote mode exists in the script, but has not yet been tested in this version. | Réaliser une campagne de tests SSH/SFTP avant production : Linux vers Linux, Windows vers Unix, comptes non privilégiés, erreurs réseau, timeouts, chemins longs.Conduct an SSH/SFTP test campaign before production: Linux to Linux, Windows to Unix, non-privileged accounts, network errors, timeouts, long paths. |
| Outils externes obligatoiresMandatory external tools | Certains formats ne peuvent pas être analysés correctement sans keytool ou runmqakm.Some formats cannot be correctly analysed without keytool or runmqakm. | Valider la présence des outils dans le PATH avant lancement, ou documenter leur chemin dans la procédure d'exploitation.Validate tool presence in PATH before launch, or document their path in the operational procedure. |
| Accès aux secrets de keystoreAccess to keystore secrets | Les keystores protégés nécessitent le mot de passe ou le fichier associé quand le format le permet.Protected keystores require the password or associated file when the format allows it. | Utiliser des procédures contrôlées, éviter la présence de secrets dans les logs et limiter les droits sur les fichiers de configuration.Use controlled procedures, avoid secrets in logs and restrict permissions on configuration files. |
| Compatibilité fournisseurVendor compatibility | Les commandes IBM MQ/GSKit varient selon version, packaging et plateforme.IBM MQ/GSKit commands vary by version, packaging and platform. | Tester les versions réelles utilisées par les équipes middleware avant généralisation.Test the actual versions used by middleware teams before general rollout. |
| Périmètre localLocal perimeter | L'analyse inter-cibles suppose que les fichiers aient été copiés de façon fiable et complète.Cross-target analysis assumes files have been reliably and completely copied. | Conserver les fichiers associés au même emplacement logique : keystore, stash, certificats intermédiaires, bundles et métadonnées utiles.Keep associated files in the same logical location: keystore, stash, intermediate certificates, bundles and useful metadata. |
Checklist de préparationPreparation checklist
- Vérifier la version Python :
python --versionoupython3 --version.Check Python version:python --versionorpython3 --version. - Vérifier les modules Python :
python -m pip show cryptography, puispython -m pip show paramikoseulement si le remote doit être testé.Check Python modules:python -m pip show cryptography, thenpython -m pip show paramikoonly if remote mode needs testing. - Vérifier Java et
keytool:java -version,keytool -help.Check Java andkeytool:java -version,keytool -help. - Vérifier IBM MQ/GSKit pour les KDB :
runmqakm -help,runmqckm -helpou commande GSKit disponible.Check IBM MQ/GSKit for KDB:runmqakm -help,runmqckm -helpor available GSKit command. - Vérifier le fichier de configuration :
C:\Tools\python\properties\constantes_V1R1M1.properties.Check the configuration file:C:\Tools\python\properties\constantes_V1R1M1.properties. - Vérifier le module couleur :
C:\Tools\python\properties\class_bcolors.py.Check the colour module:C:\Tools\python\properties\class_bcolors.py. - Vérifier les dossiers de sortie Windows et Unix définis dans les constantes, ainsi que les droits d'écriture.Check the Windows and Unix output folders defined in the constants, and write permissions.
- Pour le remote, préparer un protocole de qualification dédié avant d'autoriser l'usage opérationnel.For remote mode, prepare a dedicated qualification protocol before authorising operational use.
Positionnement exploitationOperational positioning
Le meilleur usage de chkcert_V1R1M1 est de le placer sur une machine d'analyse contrôlée disposant de Python, Java/keytool et, si besoin, des outils IBM MQ/GSKit. Les keystores issus des plateformes cibles peuvent ensuite être analysés de manière homogène, avec des sorties JSON et HTML exploitables par les équipes PKI, middleware, production et sécurité.
The best use of chkcert_V1R1M1 is to place it on a controlled analysis machine with Python, Java/keytool and, if needed, IBM MQ/GSKit tools. Keystores from target platforms can then be analysed uniformly, with JSON and HTML outputs usable by PKI, middleware, production and security teams.
Le mode remote doit rester en phase de validation pour cette version. La voie la plus robuste à court terme consiste à analyser localement des fichiers collectés proprement depuis les plateformes cibles, puis à industrialiser le remote après tests.
Remote mode should remain in the validation phase for this version. The most robust short-term approach is to analyse locally files properly collected from target platforms, then industrialise remote mode after testing.