Qu'est-ce que le format de fichier PEM ?
L'extension de fichier PEM est utilisée par les fichiers de certificat pour stocker et transporter des clés cryptographiques, des certificats et d'autres types de données. Les fichiers PEM sont encodés en Base64 et stockent les données au format texte ASCII - chaque bloc est enveloppé dans des lignes d'en-tête et de pied de page reconnaissables telles que -----BEGIN CERTIFICATE----- et -----END CERTIFICATE-----.
Les fichiers de certificat encodés en PEM sont fréquemment utilisés sur les serveurs Internet car ils sont faciles à consulter à l'aide de n'importe quel éditeur de texte standard. Les fichiers PEM sont utilisés pour authentifier des sites Web de confiance et constituent le format par défaut sur les serveurs Web basés sur Unix tels qu'Apache et Nginx. Un seul fichier .pem peut regrouper plusieurs blocs - par exemple, un certificat de serveur, des certificats intermédiaires et une clé privée - le tout dans un seul fichier. PEM est également largement utilisé pour les paires de clés SSH et la configuration TLS/HTTPS.
Le certificat PEM utilise une clé publique signée numériquement à des fins de sécurité. Le processus d'authentification utilise la clé publique pour identifier le propriétaire de la clé et confirmer qu'il est bien celui qu'il prétend être. Les clés privées stockées dans des fichiers .pem peuvent éventuellement être protégées par une phrase de passe pour une sécurité supplémentaire.
Conçu à l'origine pour le Privacy-Enhanced Mail au début des années 1990, l'encodage PEM a été formalisé en tant que norme IETF dans la RFC 7468 (2015). Il reste le format de conteneur le plus largement utilisé pour les certificats X.509 et les clés cryptographiques. Les formats binaires associés incluent les fichiers .DER et PKCS#12 ; les fichiers .crt et .key sont souvent de simples fichiers .pem renommés contenant respectivement un certificat ou une clé.
- Les fichiers PEM sont pris en charge par OpenSSL et la plupart des boîtes à outils TLS/SSL.
- L'ouverture d'un fichier
.pemavec un éditeur de texte montre clairement les sections d'en-tête et de pied de page marquées-----BEGIN-----et-----END-----. - Un seul fichier
.pempeut contenir différents types d'objets :CERTIFICATE,PRIVATE KEY,RSA PRIVATE KEY,PUBLIC KEY,CERTIFICATE REQUEST, et d'autres.
Sécurité et sûreté
RISQUE : HIGHLe danger avec le .pem réside dans le cas de la PRIVATE KEY. Un .pem contenant « -----BEGIN PRIVATE KEY----- » (ou RSA/EC PRIVATE KEY) est un secret : quiconque le possède peut usurper l'identité de votre serveur, décrypter le trafic ou se connecter à votre instance cloud. Ne collez JAMAIS un .pem de clé privée dans un « visualiseur/convertisseur PEM » en ligne et ne l'envoyez pas par e-mail ; effectuez les conversions localement avec OpenSSL. Définissez des permissions strictes (SSH refuse une clé lisible par tous - « chmod 600 key.pem »). Un .pem qui n'est qu'un CERTIFICATE (public) peut être partagé sans danger. Méfiez-vous des convertisseurs de certificats en ligne pour tout ce qui implique une clé. Les fichiers eux-mêmes sont du texte inerte et ne peuvent pas s'exécuter.
Détails du format
en brefProgrammes qui ouvrent les fichiers PEM
Détails techniques
spécifications approfondies| Encodage | Données DER encodées en Base64 enveloppées dans des lignes d'en-tête et de pied de page ASCII |
| Structure du fichier | Un ou plusieurs blocs PEM, chacun délimité par des lignes `-----BEGIN <type>-----` et `-----END <type>-----` |
| Format binaire sous-jacent | DER (Distinguished Encoding Rules), un format de sérialisation binaire ASN.1 |
| Type MIME | `application/x-pem-file` |
| Types d'objets pris en charge | `CERTIFICATE`, `PRIVATE KEY`, `RSA PRIVATE KEY`, `PUBLIC KEY`, `CERTIFICATE REQUEST` |
| Convention de longueur de ligne | Données Base64 avec retour à la ligne tous les 64 caractères selon la RFC 7468 |
| Prise en charge multi-objets | Un seul fichier `.pem` peut concaténer plusieurs blocs PEM, comme une chaîne de certificats complète plus une clé privée |
| Extensions alternatives courantes | `.crt`, `.cer`, `.key`, `.ca-bundle` - même format PEM, conventions de nommage différentes selon le rôle |
| Protection de la clé privée | Les blocs de clés peuvent être chiffrés avec une phrase de passe en utilisant PKCS#8 ou des en-têtes de chiffrement PEM hérités |
| Principaux cas d'utilisation | Certificats de serveur TLS/HTTPS, paires de clés SSH, bundles de certificats CA, certificats de signature de code |
| Interopérabilité | Convertible en `.der` binaire avec `openssl x509 -outform DER` ; les fichiers PKCS#12 (`.p12`) peuvent être exportés en PEM |
| Jeu de caractères | US-ASCII uniquement - alphabet Base64 (A-Z, a-z, 0-9, +, /) plus tirets d'en-tête/pied de page et étiquettes de type |
| Gestion des sauts de ligne | La RFC 7468 impose des fins de ligne LF (\n) ; de nombreux outils acceptent également CRLF pour la compatibilité héritée |
| Syntaxe en-tête/pied de page | Cinq tirets, `BEGIN` ou `END`, un espace, l'étiquette du type d'objet, cinq tirets - ex: `-----BEGIN CERTIFICATE-----` |
| Publié | PEM email RFCs 1421-1424 (1993); the encoding lives on as the textual format, codified in RFC 7468 (2015) |
| Standard ouvert | Oui · libre de droits |
| Spécification | www.rfc-editor.org |
Conversions PEM
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers PEM.