Convertisseur JWK ⇄ PEM
PKI Web et Cryptographie

Convertisseur de Clés JWK en PEM et PEM en JWK (RSA & EC)

Convertissez les clés JSON Web Key (JWK / JWKS, RFC 7517) aux formats PEM PKCS#8 / SPKI et transformez les clés PEM publiques et privées en structures JWK.

Confidentialité 100% côté client
Zéro transmission au serveur
Préréglages :
Entrée de Clé (JWK / JWKS / PEM)
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0S1CTzIxxA0411a/i9zB
d5knsWNuaAykjSmrckqv7gH8SZgu7pRRUcYQvmsNSR80dSSmqI3fu/EJIaBSCIdw
tDr/ci1qeqRPHXz+52sCFy+DfZU16bLIH70UIVZAu5keLFpWuJ5cNpzxl7MqDGU4
RHWPMqfE4GVSnEzhZ6/+EWpCWqHnu6UVZ9qohjo63eUekTDJMbJjfYYt08JSIGOJ
HXUePxdqxjg7xOzqQ1q8BY249nzSgyvxYPwpGEPvLhxk4L9VrF9uy/v5uT/FG3NW
Fur2s/LaOjKvejvbpvb1nbBTljl/JT+j8cWWjs+5JBLJ0C/y9QRhQeUeR+UsY0HU
bwIDAQAB
-----END PUBLIC KEY-----
Algorithme & Spécification
RSA • 2048-bit RSA
Empreinte RFC 7638
Derived SHA-256
Isolation Navigateur
Web Crypto local

Cryptographie 100% Isolée dans le Navigateur

Aucun téléversement vers un serveur ni télémétrie. Vos clés privées sont converties directement dans la mémoire de votre navigateur.

Moteur Dual RSA & Courbes Elliptiques

Prise en charge intégrale de RSA (2048/4096 bits), ECDSA (P-256, P-384, P-521), SPKI, PKCS#1 et PKCS#8.

Conforme aux Normes RFC 7517 & RFC 7638

Calcule les empreintes SHA-256 déterministes selon la RFC 7638 et génère des enveloppes JWKS standardisées.

Référence technique et guide d'architecture

Guide Développeur : Convertisseur JWK en PEM et PEM en JWK (Clés RSA et EC) — Guide de référence

Convertissez les clés JSON Web Key (JWK / JWKS, RFC 7517) aux formats PEM PKCS#8 / SPKI et transformez les clés PEM publiques et privées en structures JWK.

Paramètres clés et contrôles

ktystring ('RSA' | 'EC' | 'OKP')

Identifiant de la famille cryptographique selon la section 4.1 de la RFC 7517.

Par défaut : RSA
crvstring ('P-256' | 'P-384' | 'P-521' | 'secp256k1' | 'Ed25519')

Paramètre de courbe cryptographique requis pour les clés à courbes elliptiques et paires OKP selon la RFC 7518.

Par défaut : P-256
formatstring ('SPKI' | 'PKCS#8' | 'PKCS#1' | 'SEC1')

Structure d'encapsulation binaire ASN.1 DER délimitée par des en-têtes textuels PEM standard.

Par défaut : SPKI / PKCS#8
usestring ('sig' | 'enc')

Usage prévu de la clé publique : vérification de signature numérique ('sig') ou chiffrement de charge utile ('enc').

Par défaut : sig
kidstring

Identifiant unique de clé (Key ID) utilisé pour la mise en correspondance des jetons JWT dans les endpoints JWKS OIDC / OAuth 2.0.

Par défaut : UUID/empreinte optionnel

Conseils de pro et bonnes practices

En-têtes PEM SPKI vs PKCS#1

L'API Web Crypto moderne, OpenSSL 3.0 et les plateformes cloud exigent le format SubjectPublicKeyInfo (SPKI, '-----BEGIN PUBLIC KEY-----'). Les en-têtes historiques PKCS#1 ('-----BEGIN RSA PUBLIC KEY-----') doivent être convertis en SPKI avant de générer une structure JWK conforme.

Respect strict de l'encodage Base64URL

La RFC 7517 impose un encodage Base64URL sans remplissage '=' et remplaçant '+' par '-' et '/' par '_'. Lors de la modification manuelle du module 'n' ou des coordonnées 'x'/'y', supprimez tout caractère '=' final afin d'éviter les erreurs d'importation dans jose ou jsonwebtoken.

Lors de l'intégration avec un

Lors de l'intégration avec un fournisseur OIDC (Auth0, Okta, Firebase, AWS Cognito), utilisez la propriété 'kid' de l'en-tête JWT pour filtrer le tableau 'keys' de /.well-known/jwks.json et convertir uniquement la clé publique de signature requise en PEM.

Interopérabilité maximale avec PKCS#8

Exportez systématiquement les clés privées au format standard non chiffré PKCS#8 ('-----BEGIN PRIVATE KEY-----') pour garantir une compatibilité directe avec Node.js crypto, Go crypto/x509 et Python cryptography.

Pièges courants et dépannage

Erreur : Type de clé non pris en charge ou en-tête PEM non reconnu

Vérifiez que votre clé PEM commence par un délimiteur reconnu comme '-----BEGIN PUBLIC KEY-----' (SPKI) ou '-----BEGIN PRIVATE KEY-----' (PKCS#8). Supprimez les espaces superflus et les sauts de ligne incompatibles.

Échec de vérification de signature avec la clé JWK importée (RS256 / ES256)

Vérifiez que la courbe ('crv') correspond à l'algorithme de signature du jeton (par exemple, ES256 requiert P-256 ; ES384 requiert P-384). Assurez-vous que les coordonnées 'x' et 'y' sont complétées avec des zéros initiaux selon la taille de la courbe.

Erreur de déchiffrement lors du traitement d'une clé privée PEM protégée

Les clés commençant par '-----BEGIN ENCRYPTED PRIVATE KEY-----' sont protégées par mot de passe. Déchiffrez d'abord la clé via OpenSSL ('openssl pkcs8 -topk8 -nocrypt -in protegee.pem -out privee.pem') avant de l'importer en JWK.

Foire aux questions (FAQ)

Quelle est la différence fondamentale entre les formats de clé JWK et PEM ?▼

Le format JWK (RFC 7517) représente les clés cryptographiques sous forme d'objets JSON avec des paramètres encodés en Base64URL, ce qui est idéal pour les API web et les microservices. Le format PEM (RFC 7468) encapsule des structures binaires ASN.1 DER en Base64 entouré de délimiteurs ASCII, très répandu dans les certificats TLS et OpenSSL.

Ce convertisseur peut-il traiter un ensemble JWKS complet issu d'Auth0 ou Google ?▼

Oui. En collant l'objet JSON complet d'un JWKS contenant un tableau 'keys', chaque clé est analysée individuellement pour générer les fichiers PEM SPKI correspondants tout en conservant les identifiants 'kid'.

La conversion de clés privées sensibles est-elle sécurisée dans ce navigateur ?▼

Oui, à 100%. L'ensemble des calculs, de l'analyse ASN.1 et des conversions cryptographiques s'exécute exclusivement dans la mémoire locale de votre navigateur via l'API Web Cryptography. Aucune donnée de clé privée n'est transmise sur le réseau.

Quelles courbes elliptiques et tailles de clés RSA sont prises en charge ?▼

L'outil prend en charge les courbes NIST (P-256, P-384, P-521), secp256k1, Ed25519 (OKP) ainsi que les clés RSA de 1024, 2048, 3072 et 4096 bits en mode public et privé.

Pourquoi mon JWK ne contient-il pas de paramètre « d » après conversion d'un PEM public ?▼

Les clés PEM publiques (SPKI) ne contiennent que les composants publics ('n' et 'e' pour RSA ; 'x' et 'y' pour EC). Le paramètre « d » représente l'exposant ou scalaire privé et n'est généré que lors de la conversion d'une clé privée (PKCS#8 ou PKCS#1).

Outils et utilitaires connexes

Tous les outils →
Guide Développeur : Générateur et Validateur d'En-têtes HTTP Permissions-Policy (Feature-Policy)Sécurité

Créez et validez des en-têtes de réponse HTTP Permissions-Policy modernes (caméra, géolocalisation, microphone, paiement) avec des listes blanches d'origines strictes.

Ouvrir l'outil→
Générateur d'En-têtes HSTS & Validateur de Préchargement - Guide DéveloppeurSécurité

Générez des en-têtes HTTP Strict-Transport-Security (HSTS) conformes à la RFC 6797 avec calcul de max-age, directive includeSubDomains et vérification d'éligibilité pour la liste Chrome HSTS Preload.

Ouvrir l'outil→
Guide Développeur : Générateur de Configuration Durcie OpenSSH Server (sshd_config)Sécurité

Générez des configurations sshd_config Linux hautement sécurisées pour la production : désactivation du root, clés publiques obligatoires, chiffrements AEAD et timeouts stricts.

Ouvrir l'outil→
Ufw Rules Generator Référence pour DéveloppeursSécurité

Utilitaire pour développeurs ufw-rules-generator.

Ouvrir l'outil→
Générateur de Règles de Pare-Feu iptables Linux et Scripts Shell - Guide DéveloppeurSécurité

Générez des règles iptables pour les chaînes INPUT/FORWARD/OUTPUT, l'inspection avec état conntrack, la protection SYN flood, la redirection NAT et l'exportation shell.

Ouvrir l'outil→
Guide Développeur : Générateur et Analyseur d'Enregistrements DNS SPFSécurité

Générez, analysez et validez des enregistrements TXT SPF conformes à la RFC 7208 avec blocs CIDR IPv4/IPv6, MX, A, mécanismes include et politiques SoftFail/HardFail.

Ouvrir l'outil→