Avis sur les meilleures machines à coudre surjeteuses 2020
21 août 2020
Traitez la vidéo dans le cloud avec Elastic Transcoder d'AWS – CloudSavvy IT
21 août 2020

Personne déverrouillage du fichier numérique avec clé.
Shutterstock / FGC

PEM est un format de fichier conteneur souvent utilisé pour stocker les clés cryptographiques. Il est utilisé pour de nombreuses choses différentes, car il définit simplement la structure et le type de codage du fichier utilisé pour stocker un peu de données.

Qu'est-ce qu'un fichier PEM?

PEM n'est qu'une norme; ils contiennent du texte et le format indique que les fichiers PEM commencent par…

-----COMMENCER -----

… Et terminer par:

-----FIN -----

Tout ce qui se trouve entre les deux est encodé en base64 (lettres majuscules et minuscules, chiffres, +, et /). Cela forme un bloc de données qui peut être utilisé dans d'autres programmes. Un seul fichier PEM peut contenir plusieurs blocs.

Cela peut être utilisé pour représenter tous les types de données, mais il est couramment utilisé pour coder des fichiers de clés, tels que les clés RSA utilisées pour SSH et les certificats utilisés pour le chiffrement SSL. Le fichier PEM vous dira à quoi il sert dans l’en-tête; par exemple, vous pouvez voir un fichier PEM commencer par…

----- COMMENCER LA CLÉ PRIVÉE RSA -----

… Suivi d'une longue chaîne de données, qui est la clé privée RSA réelle.

Fichiers PEM avec certificats SSL

Les fichiers PEM sont utilisés pour stocker les certificats SSL et leurs clés privées associées. Plusieurs certificats sont dans la chaîne SSL complète et fonctionnent dans cet ordre:

  • Le certificat de l'utilisateur final, qui est attribué à votre nom de domaine par une autorité de certification (CA). C'est le fichier que vous utilisez dans nginx et Apache pour crypter HTTPS.
  • Jusqu'à quatre certificats intermédiaires facultatifs, remis à des autorités de certification plus petites par des autorités supérieures.
  • Le certificat racine, le certificat le plus élevé de la chaîne, qui est auto-signé par l'autorité de certification principale.

En pratique, chaque certificat est répertorié dans un fichier PEM, en utilisant des blocs séparés:

----- DÉBUT DU CERTIFICAT -----
  //utilisateur final
----- FIN DU CERTIFICAT -----
----- DÉBUT DU CERTIFICAT -----
  //intermédiaire
----- FIN DU CERTIFICAT -----
----- DÉBUT DU CERTIFICAT -----
  //racine
----- FIN DU CERTIFICAT -----

Vous recevrez ces fichiers de votre fournisseur SSL pour une utilisation sur votre serveur Web. Par exemple, LetsEncrypt's certbot génère les certificats suivants, placés dans / etc / letsencrypt / live / votre-nom-de-domaine / :

cert.pem chain.pem fullchain.pem privkey.pem
  • cert.pem est le certificat de l'utilisateur final.
  • chain.pem est le reste de la chaîne; dans ce cas, il s’agit uniquement du certificat racine de LetsEncrypt.
  • fullchain.pem est cert.pem et chain.pem combiné. C'est le fichier passé à nginx avec le ssl_certificate directif.
  • privkey.pem est une clé privée RSA générée avec le certificat.

Ceux-ci peuvent également utiliser le .crt extension; si vous avez auto-signé un certificat avec OpenSSL, vous obtiendrez un fichier CRT plutôt que PEM, même si le contenu sera toujours le même et l'utilisation sera la même.

Pour utiliser vos certificats, vous devrez les transmettre en tant que paramètres de votre serveur Web. Pour nginx, vous souhaiterez spécifier le ssl_certificate (le fichier PEM de la chaîne complète), et ssl_certificate_key (le fichier PEM de clé privée RSA), après avoir activé SSL:

ssl_certificate /etc/letsencrypt/live/yourdomain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain/privkey.pem;

Pour Apache, la configuration est en grande partie la même, mais vous devrez utiliser le SSLCertificateFile et SSLCertificateKeyFile directives:

SSLCertificateFile /etc/letsencrypt/live/yourdomain/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain/privkey.pem

Fichiers PEM avec SSH

Les fichiers PEM sont également utilisés pour SSH. Si vous avez déjà couru ssh-keygen pour utiliser ssh sans mot de passe, votre ~ / .ssh / id_rsa est un fichier PEM, juste sans l'extension.

Plus particulièrement, Amazon Web Services vous fournit un fichier PEM contenant une clé privée chaque fois que vous créez une nouvelle instance, et vous devez utiliser cette clé pour pouvoir utiliser SSH dans de nouvelles instances EC2.

Vous devrez utiliser le -je drapeau avec ssh pour spécifier que vous souhaitez utiliser cette nouvelle clé au lieu de id_rsa:

ssh -i keyfile.pem root @ hôte

Cela vous connectera au serveur normalement, mais vous devrez spécifier cet indicateur à chaque fois.

Une méthode plus simple consiste à ajouter la clé privée à votre agent ssh avec ssh-add:

ssh-add keyfile.pem

Cependant, cela ne persiste pas lors des redémarrages, vous devrez donc exécuter cette commande au démarrage ou l'ajouter à votre trousseau macOS.

Bien entendu, vous pouvez également toujours simplement ajouter votre clé publique principale à l'instance ~ / .ssh / clés_autorisées après vous être connecté une fois, mais cette méthode devrait fonctionner immédiatement pour toutes les nouvelles instances à venir.

//]]>