Le ticket de support demande quel certificat se trouve dans le bundle VPN, et le premier réflexe est d'exporter tout et de le joindre. Un fichier P12 emballe les certificats et le matériel de clé privée dans un seul conteneur, donc exporter tout est précisément ce qu'il ne faut pas envoyer. La commande qui répond à la question est un problème de sélection, pas de conversion. Quatre options décident de la moitié du conteneur que vous obtenez, et deux d'entre elles sonnent plus sûres qu'elles ne le sont.

Commencez par lire le conteneur au lieu de le vider.

Ce que contient réellement un fichier PKCS12

Un conteneur PKCS12 contient un ou plusieurs certificats, éventuellement une clé privée, et un code d'authentification de message sur le contenu. Les certificats peuvent inclure le certificat feuille de votre identité client et les intermédiaires qui le rattachent à une CA. La clé, lorsqu'elle est présente, est ce qui fait du fichier un secret plutôt qu'un document.

Cette distinction explique pourquoi -nokeys existe et pourquoi c'est l'option dont cette tâche a besoin.

Lire le bundle sans écrire la clé

La forme d'inspection affiche la structure et les détails des algorithmes et n'écrit rien : openssl pkcs12 -in client.p12 -info -noout. Elle demande le mot de passe d'importation, qui est le bon endroit pour cette valeur, et elle vous dit si le fichier contient une clé. Utilisez -passin env:PKCS12_PASS lorsque le mot de passe ne peut pas être saisi, car un mot de passe dans une commande shell est un mot de passe dans la liste des processus. Cette étape n'exporte rien, ce qui est tout l'intérêt.

Lisez la sortie pour trois choses : combien de certificats, si une clé est présente et quels algorithmes la protègent.

Utilisez -nokeys et ne le confondez pas avec -nocerts

-nokeys exclut les clés privées et laisse les certificats. -clcerts restreint cela aux certificats client, -cacerts le restreint aux certificats de CA, et ces deux-là sont des filtres plutôt que des alternatives. -nocerts se lit comme l'orthographe sûre de la même idée et signifie l'inverse : pas de certificats, ce qui ne laisse que les clés. Le mélanger à un export de certificats, c'est ainsi qu'une clé privée finit sur le disque.

La forme en deux lignes qui produit un fichier de certificats et un fichier de CA, et rien d'autre, est :

openssl pkcs12 -in client.p12 -nokeys -clcerts -out client-certificates.pem
openssl pkcs12 -in client.p12 -nokeys -cacerts -out ca-certificates.pem

Les bundles hérités ont besoin de -legacy sur OpenSSL 3 pour lire leur chiffrement plus ancien, et cette option change ce que l'analyseur accepte, pas ce qu'il émet. Si l'analyse échoue avec une erreur d'algorithme non pris en charge, ajouter -legacy est le bon premier geste, et sauter la vérification du MAC ne l'est pas.

Vérifiez la sortie, pas le code de retour

Un code de retour nul dit que la commande s'est exécutée, pas que le fichier contient ce que vous attendez. Comptez les certificats dans la sortie et lisez le sujet et les dates : openssl x509 -in client-certificates.pem -noout -subject -dates -fingerprint. Comparez l'empreinte avec celle qu'attend l'équipe de support, car un bundle contenant deux certificats client produit un fichier à deux blocs et la plupart des outils ne lisent que le premier. Usage, confiance et correspondance de clé sont encore des tests séparés.

Un certificat qui s'analyse est un certificat qui s'analyse. Ce n'est pas un certificat que le VPN accepte.

Décidez si vous avez besoin de fichiers

Si le client destinataire importe PKCS12 directement, envoyer le bundle d'origine par un canal approuvé avec le mot de passe conservé à part est plus simple et préserve la protection. L'extraction sert à l'inspection, à un client qui a besoin de PEM, ou à un dossier de support qui a demandé un artefact précis. Chaque extraction retire une couche et devrait avoir une raison.

Les certificats publics ne contiennent pas la clé privée, mais ils contiennent des noms et des détails d'organisation. Partagez les champs demandés par le ticket plutôt que le fichier, sauf si c'est le fichier qui a été demandé.

Articles similaires