O que é um arquivo PEM e como ele é usado?

PEM é um formato de arquivo de contêiner que é frequentemente usado para armazenar chaves criptográficas. Ele é usado para muitas coisas diferentes, pois simplesmente define a estrutura e o tipo de codificação do arquivo usado para armazenar alguns dados.

índice

  1. O que é um arquivo PEM?
  2. Arquivo PEM com certificados SSL
  3. Arquivo PEM com SSH

O que é um arquivo PEM?

PEM é apenas um padrão; contêm texto e o formato determina que os arquivos PEM comecem com …

 -----INÍCIO <tipo>-----

… e termina com:

 -----END <tipo>-----

Tudo no meio é codificado em base64 (letras maiúsculas e minúsculas, dígitos, + , AND / ). Isso forma um bloco de dados que pode ser usado em outros programas. Um único arquivo PEM pode conter vários blocos.

Ele pode ser usado para representar todos os tipos de dados, mas é mais comumente usado para criptografar arquivos de chave, como chaves RSA usadas para SSH e certificados usados ​​para criptografia SSL. O arquivo PEM lhe dirá para que serve no cabeçalho; por exemplo, você pode ver um arquivo PEM que começa com …

 -----INICIAR CHAVE PRIVADA RSA-----

Seguido por uma longa sequência de dados, que é a chave privada RSA real.

Arquivo PEM com certificados SSL

Os arquivos PEM são usados ​​para armazenar certificados SSL e chaves privadas associadas. Existem vários certificados na cadeia SSL completa e eles funcionam nesta ordem:

  • O certificado de usuário final, que uma autoridade de certificação (CA) atribui ao seu nome de domínio. Este é o arquivo usado pelo nginx e pelo Apache para criptografar HTTPS.
  • Até quatro certificados intermediários opcionais, fornecidos a autoridades de certificação menores por autoridades superiores.
  • O certificado raiz, o certificado mais alto da cadeia, que é autoassinado pela CA pai.

Basicamente, cada certificado é listado em um arquivo PEM, usando blocos separados:

 -----BEGIN CERTIFICATE----- //usuário final -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- //intermediário -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- //root -----END CERTIFICATE-----

Seu provedor SSL fornecerá esses arquivos para você usar em seu servidor web. Por exemplo, o certbot do certbot gera os seguintes certificados, inseridos em /etc/letsencrypt/live/your-domain-name/ :

 cert.pem chain.pem fullchain.pem privkey.pem
  • cert.pem é o certificado do usuário final.
  • chain.pem é o resto da cadeia; neste caso, é apenas o certificado raiz LetsEncrypt.
  • fullchain.pem é cert.pem AND chain.pem definido. Este é o arquivo passado para o nginx com a diretiva ssl_certificate .
  • privkey.pem é uma chave privada RSA gerada com o certificado.

Estes também podem usar a extensão .crt ; se você tiver um certificado autoassinado com OpenSSL, obterá um arquivo CRT em vez de PEM, embora o conteúdo seja sempre o mesmo e o uso seja sempre o mesmo.

Para usar seus certificados, você deve passá-los como parâmetros para seu servidor web. Para nginx, recomendamos que você especifique ssl_certificate (o arquivo PEM de string completa) e ssl_certificate_key (o arquivo PEM de chave privada RSA), após habilitar o SSL:

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

Para o Apache, a instalação é basicamente a mesma, mas você precisará usar as SSLCertificateFile E SSLCertificateKeyFile :

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

Arquivo PEM com SSH

Os arquivos PEM também são usados ​​para SSH. Se você já executou ssh-keygen para usar ssh sem senha, o seu ~/.ssh/id_rsa é um arquivo PEM, apenas sem a extensão .

Especificamente, o Amazon Web Services fornece um arquivo PEM contendo uma chave privada sempre que você cria uma nova instância, e você deve usar essa chave para poder fazer SSH em novas instâncias do EC2.

Você precisa usar o sinalizador -i com ssh para especificar que deseja usar essa nova chave em vez de id_rsa :

 ssh -i keyfile.pem [protegido por e-mail]

Isso permitirá que você efetue login no servidor normalmente, mas você precisará especificar esse sinalizador a cada vez.

Um método mais simples é adicionar a chave privada ao seu agente ssh com ssh-add :

 ssh-add keyfile.pem

No entanto, isso não persiste entre as reinicializações, portanto, você precisará executar esse comando na inicialização ou adicioná-lo ao seu chaveiro do macOS.

Claro, você também pode simplesmente adicionar sua chave pública primária ao ~/.ssh/authorized_keys da instância após efetuar login uma vez, mas esse método deve funcionar imediatamente para todas as novas instâncias no futuro.

Vale a pena notar que você ainda deve bloquear seu servidor SSH mesmo se estiver usando as chaves por conta própria.

  • 6 distribuições Linux leves
  • Como usar o processamento multithread em scripts Bash

descubra mais conteúdo

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão geek

O que é uma carga fantasma?

Deixe uma resposta Cancelar resposta

O que é um arquivo PEM?

PEM significa Privacy Enhanced Mail. O formato PEM é frequentemente usado para representar certificados, solicitações de certificados, cadeias de certificados e chaves. A extensão típica para um arquivo de formato PEM é . pem , mas não é obrigatório.

Como faço para abrir um arquivo PEM?

Você pode começar instalando alguns dos programas mais comuns associados aos arquivos PEM . Alguns desses títulos de software associados incluem Audio Module, WordPerfect Program Editor Macro e Privacy Enhanced Mail Security Certificate. Você pode baixar um desses programas no site do desenvolvedor.

O que é um arquivo CRT?

crt : é um formato de exportação de chave pública do Mozilla firefox. Está no formato PEM (Base 64).

Ir arriba