Accueil / Notes techniques / Conversion de format de certificat SSL WAF

Importation de certificat SSL WAF : conversion de format JKS, PFX et PEM

Le certificat qu'un client remet n'est presque jamais dans le format que veut un WAF. Tomcat exporte un keystore JKS, IIS exporte un fichier PFX, et le WAF veut une simple clé publique, une clé privée et une chaîne de certificats. Voici la véritable chaîne de conversion, les commandes keytool et OpenSSL, et ce qu'il faut vérifier avant qu'un téléversement qui semblait correct ne s'avère ne pas l'être.

Par Yuwen Zhang (Atlas), fondateur d'AtlasCommTech — 13 ans de déploiements de réseaux opérateurs et d'entreprise · Mis à jour en juillet 2026

Pourquoi le même certificat refuse de se téléverser deux fois

Le certificat est authentique, il n'a pas expiré, et il refuse toujours d'entrer dans le WAF — parce que le fichier lui-même a la mauvaise forme.

La plupart des plateformes de serveur web ne stockent pas les certificats sous forme de simple clé publique, clé privée et chaîne. Apache et Nginx, bâtis sur OpenSSL, s'en rapprochent le plus — ils fonctionnent déjà avec des fichiers de type CRT, KEY et CER. Tomcat, WebLogic et JBoss tournent sur Java et stockent tout dans un seul fichier Java Keystore (JKS) construit avec le Keytool du JDK. IIS de Microsoft utilise le magasin de certificats Windows et exporte en PFX. La configuration HTTPS d'un WAF veut directement les fichiers de style OpenSSL, donc tout ce qui sort d'un conteneur JKS ou PFX doit d'abord être converti — et la chaîne doit voyager avec, sinon le site reste inaccessible même avec un certificat parfaitement valide.

Voici la relation de conversion entre les trois formats, les commandes exactes pour chaque étape, comment générer une chaîne de certificats quand celle du client manque, comment distinguer un fichier de clé publique d'un fichier de CA avant de téléverser l'un ou l'autre, et quelques réponses de FAQ tirées de cas de terrain réels.

Comment les trois formats se rapportent réellement entre eux

JKS, PFX et PEM/KEY/CRT ne sont pas trois formats sans rapport — ils se situent sur une seule chaîne de conversion, et chaque téléversement de certificat WAF finit par la parcourir depuis l'une ou l'autre extrémité.

Savoir de quelle extrémité vous partez vous indique exactement combien d'étapes vous séparent d'un téléversement qui fonctionne réellement.

JKS Java Keystore Tomcat / WebLogic / JBoss PFX PKCS#12 IIS / Windows cert store PEM / KEY / CRT Apache / Nginx — OpenSSL format the WAF requires keytool openssl + Certificate chain intermediate CA — build via myssl.com if missing

Les légendes du schéma restent en anglais pour la clarté technique.

Tout ce qui se trouve à gauche de PEM/KEY/CRT doit faire le trajet à travers ce schéma avant qu'un WAF ne l'accepte. La chaîne de certificats est une préoccupation distincte qui voyage aux côtés de la paire de clés publique/privée, pas un quatrième format sur la même chaîne — et c'est l'élément le plus souvent oublié.

Les étapes de conversion réelles

Deux étapes, une étape de construction de chaîne si nécessaire, et une passe de vérification avant de toucher au formulaire de téléversement.

Étape 1 — De JKS à PFX (Keytool)

Si le certificat provient d'un serveur Tomcat, WebLogic ou JBoss, il se trouve dans un seul fichier JKS et nécessite d'abord une étape via Keytool.

  1. Localisez l'utilitaire Keytool du JDK sur la machine qui détient le fichier JKS — il est fourni avec toute installation standard du JDK.
  2. Exécutez la commande importkeystore, en la pointant vers le fichier JKS source et en nommant le fichier PFX de destination, avec le type source défini sur JKS et le type de destination sur PKCS12.
  3. Keytool demandera le mot de passe du keystore ; fournissez celui que l'administrateur du serveur du client a utilisé lors de la création du fichier JKS.
keytool -importkeystore -srckeystore D:\server.jks -destkeystore D:\server.pfx -srcstoretype JKS -deststoretype PKCS12

Étape 2 — De PFX à PEM / KEY / CRT (OpenSSL)

Que le PFX provienne de l'étape 1 ou directement d'un serveur IIS, c'est cette étape qui produit les fichiers que le WAF veut réellement.

  1. Copiez le fichier PFX dans le répertoire d'installation d'OpenSSL (ou assurez-vous qu'OpenSSL est accessible depuis l'emplacement du fichier).
  2. Exécutez openssl pkcs12 pour tout extraire dans un seul fichier PEM non chiffré — celui-ci contient à la fois la clé privée et le certificat.
  3. Exécutez openssl rsa sur ce fichier PEM pour n'extraire que la clé privée sous forme de fichier KEY à part.
  4. Exécutez openssl x509 sur le même fichier PEM pour n'extraire que le certificat public sous forme de fichier CRT à part.
openssl pkcs12 -in server.pfx -nodes -out server.pem
openssl rsa -in server.pem -out server.key
openssl x509 -in server.pem -out server.crt

Étape 3 — Construire la chaîne de certificats (si elle manque)

Lorsque le certificat provient d'une CA intermédiaire plutôt que d'une autorité racine — le cas normal — la chaîne doit elle aussi être téléversée, sinon le site reste inaccessible pour quiconque dont le navigateur ne fait pas déjà confiance à cet intermédiaire.

  1. Vérifiez si le client a déjà fourni un fichier de chaîne avec le certificat. Si oui et qu'il est intact, passez directement à l'étape 4.
  2. Si la chaîne manque ou a été perdue, importez le certificat de CA du site dans un outil en ligne de téléchargement de chaîne tel que la page chain_download de myssl.com.
  3. Une fois le certificat de CA importé, utilisez l'outil pour générer la chaîne, puis téléchargez le fichier de chaîne obtenu pour le téléverser avec la clé publique et la clé privée.

Étape 4 — Vérifier avant de téléverser

Un fichier qui s'ouvre sans erreur n'est pas la preuve que c'est le bon fichier pour le champ dans lequel vous allez le mettre.

  1. Double-cliquez sur chaque fichier de certificat pour l'ouvrir et vérifiez le chemin du certificat. Un nom de domaine dans le chemin signifie que vous regardez la clé publique — le certificat feuille réellement émis pour ce site.
  2. L'absence de nom de domaine dans le chemin signifie qu'il s'agit d'un certificat de CA — utile pour la chaîne, mais il n'a pas sa place dans le champ de téléversement de la clé publique.
  3. Téléversez la clé publique, la clé privée et la chaîne de certificats dans leurs champs respectifs, activez le déchiffrement HTTPS/SSL sur le site protégé, et confirmez que le site est accessible en HTTPS avant de considérer la tâche terminée.

4 pièges à l'origine de la plupart des échecs de téléversement de certificat

Les commandes de conversion elles-mêmes échouent rarement — ce sont ces quatre éléments autour d'elles qui font vraiment échouer le téléversement.

1. JKS, PFX et PEM ne sont pas interchangeables — et le WAF n'en accepte qu'un seul

SYMPTÔMEUn certificat qui fonctionne parfaitement sur le serveur Tomcat ou IIS du client est rejeté, ou refuse simplement de se téléverser, lorsque vous essayez de configurer le même site HTTPS sur le WAF.

CAUSEDifférentes plateformes de serveur web stockent les certificats dans des formats différents par défaut : Apache/Nginx utilisent des fichiers CRT/KEY basés sur OpenSSL, Tomcat/WebLogic/JBoss utilisent un Java Keystore (JKS) construit avec le Keytool du JDK, et IIS sur Windows Server exporte en PFX. La configuration HTTPS/SSL du WAF veut la clé publique, la clé privée et la chaîne de certificats de style OpenSSL — pas un conteneur JKS ou PFX.

SOLUTIONConvertissez en suivant la chaîne standard — JKS vers PFX avec Keytool, puis PFX vers PEM/KEY/CRT avec OpenSSL — plutôt que d'essayer de téléverser le fichier original du client tel quel.

2. Une chaîne de certificats manquante casse le site même si le certificat est valide

SYMPTÔMELe site HTTPS est inaccessible après le téléversement du certificat, alors que le certificat lui-même est valide et n'a pas expiré.

CAUSELorsqu'un certificat est émis par une CA intermédiaire plutôt que directement par une autorité racine — le cas normal — les clients ont besoin de la chaîne intermédiaire pour construire un chemin de confiance vers une racine à laquelle ils font déjà confiance. Si cette chaîne n'est pas téléversée avec la clé publique et privée, la négociation échoue pour quiconque dont le navigateur n'a pas déjà l'intermédiaire en cache.

SOLUTIONTéléversez la chaîne de certificats fournie par le client. Si elle manque ou a été perdue, importez le certificat de CA du site dans un outil en ligne de téléchargement de chaîne tel que la page chain_download de myssl.com, générez-y la chaîne, et téléversez le résultat.

3. Une clé publique et un certificat de CA se ressemblent jusqu'à ce qu'on les ouvre

SYMPTÔMEUn téléversement de certificat semble réussir, mais le site échoue toujours à servir correctement le HTTPS, ou le mauvais fichier se retrouve dans le mauvais champ de téléversement.

CAUSEUn certificat feuille (la clé publique du site) et un certificat de CA peuvent tous deux être de simples fichiers .crt/.cer avec des noms similaires, et il n'y a aucun moyen fiable de les distinguer juste par le nom du fichier.

SOLUTIONDouble-cliquez sur le fichier de certificat avant de le téléverser et vérifiez le chemin du certificat. Un nom de domaine dans le chemin signifie que c'est la clé publique ; l'absence de nom de domaine signifie que c'est un certificat de CA — téléversez chacun dans le champ correspondant à ce qu'il est réellement, pas à ce que son nom de fichier suggère.

4. HTTP fonctionne, HTTPS non — et le certificat n'est pas toujours la raison

SYMPTÔMELe même site fonctionne bien en HTTP, mais l'accès HTTPS échoue pour certains ou tous les clients après que le certificat a déjà été téléversé.

CAUSEUne fois HTTP confirmé fonctionnel, la panne se situe quelque part dans la négociation TLS elle-même, et c'est généralement l'une de quatre choses : une version SSL/TLS sur laquelle le client est bloqué et que le WAF ne prend pas en charge (SSLv2/SSLv3/TLS 1.0), une suite de chiffrement que le WAF désactive par défaut, une clé publique, privée ou une chaîne qui ne correspond pas réellement au serveur d'origine, ou un client présentant une authentification TLS mutuelle (bidirectionnelle) telle qu'un UKey — que ce type de WAF ne peut absolument pas mettre en proxy.

SOLUTIONPassez en revue les quatre dans l'ordre : vérifiez d'abord la version de protocole négociée par le client, puis la prise en charge de la suite de chiffrement, puis revérifiez que la clé/chaîne téléversée correspond bien à l'origine, et enfin écartez les clients à authentification mutuelle — qui doivent contourner le WAF plutôt que d'être mis en proxy à travers lui.

Conceptions de solutions associées

Cinq questions qui reviennent constamment

Tirées directement du terrain — celles pour lesquelles il vaut la peine d'avoir une réponse prête.

Quel logiciel de serveur web utilise quel format de certificat ?

Apache et Nginx utilisent normalement les outils propres d'OpenSSL, produisant directement des fichiers de type CRT, KEY et CER. Tomcat, WebLogic et JBoss passent par le Keytool de Java, qui fait partie du JDK, et stockent tout dans un seul fichier Java Keystore (JKS). IIS de Microsoft utilise le magasin de certificats Windows et exporte en PFX. Un WAF a besoin de la clé publique, de la clé privée et de la chaîne de style OpenSSL — donc tout ce qui sort d'un fichier JKS ou PFX doit d'abord être converti.

Quelle est la chaîne de commandes réelle d'un fichier JKS Tomcat à ce dont le WAF a besoin ?

Deux étapes. D'abord, Keytool convertit JKS en PFX : keytool -importkeystore -srckeystore server.jks -destkeystore server.pfx -srcstoretype JKS -deststoretype PKCS12. Ensuite, OpenSSL scinde le PFX en fichiers PEM/KEY/CRT dont le WAF a réellement besoin : openssl pkcs12 -in server.pfx -nodes -out server.pem, suivi de openssl rsa -in server.pem -out server.key et openssl x509 -in server.pem -out server.crt.

Mon certificat provient d'une CA intermédiaire, pas de la racine — cela change-t-il quelque chose ?

Oui — vous devez téléverser la chaîne de certificats avec la clé publique et privée, sinon le site devient inaccessible même si le certificat feuille lui-même est parfaitement valide. Si le client n'a pas fourni de fichier de chaîne, ou qu'il a été perdu, importer le certificat de CA du site dans l'outil de téléchargement de chaîne de myssl.com et générer la chaîne à partir de là est la solution habituelle.

Comment savoir si un fichier est la clé publique de mon site ou juste un certificat de CA avant de le téléverser ?

Double-cliquez sur le fichier de certificat pour l'ouvrir et vérifiez le chemin du certificat. Si un nom de domaine apparaît dans la chaîne, vous regardez la clé publique — le certificat feuille émis pour votre site. S'il n'y a pas de nom de domaine, c'est un certificat de CA — utile pour construire la chaîne, mais pas quelque chose que vous devriez téléverser dans le champ de clé publique.

J'ai téléversé le certificat et HTTP fonctionne mais HTTPS ne fonctionne toujours pas — par où commencer ?

Quatre suspects habituels, dans à peu près cet ordre : une version de protocole SSL/TLS non prise en charge côté client (SSLv2, SSLv3, TLS 1.0) ; une suite de chiffrement que le WAF désactive par défaut pour des raisons de sécurité, que vous pouvez activer au prix d'une partie de cette sécurité ; une clé publique, une clé privée ou une chaîne qui ne correspond tout simplement pas à ce que le serveur d'origine utilise réellement ; ou un client effectuant une authentification TLS mutuelle (bidirectionnelle) avec quelque chose comme un UKey — que ce type de WAF ne prend absolument pas en charge en proxy.

Limites honnêtes de cette note

Limites honnêtes de cette note

Cette note s'appuie sur les exigences de certificat du WAF Huawei — une clé publique, une clé privée et une chaîne de certificats au format PEM/KEY/CRT de style OpenSSL — et les commandes Keytool / OpenSSL utilisées pour y parvenir depuis JKS ou PFX, ainsi que sur les cas de terrain qui les sous-tendent. Si votre WAF est d'un autre fournisseur, les champs de téléversement exacts peuvent différer, mais la chaîne de conversion sous-jacente — JKS via PFX vers PEM/KEY/CRT — et les vérifications de chaîne de certificats et de clé publique versus CA s'appliquent directement. Elle ne couvre pas l'authentification par certificat client TLS mutuelle (bidirectionnelle), que la plupart des appliances WAF ne mettent absolument pas en proxy.

Bloqué en convertissant un certificat pour votre WAF ?

Dites-nous de quel format vous partez — JKS, PFX, ou autre chose — et où la chaîne se casse, et nous vous aiderons à l'interpréter.

WhatsApp avec un ingénieur →

Lectures connexes

Nous n'utilisons des cookies que pour des statistiques anonymes — pas de publicité, pas de suivi intersites.Politique de confidentialité