AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 9708
Accepted
Noah Goodrich
Noah Goodrich
Asked: 2009-05-19 18:24:42 +0800 CST2009-05-19 18:24:42 +0800 CST 2009-05-19 18:24:42 +0800 CST

O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

  • 772

Sou responsável pela manutenção de dois servidores Debian. Toda vez que tenho que fazer alguma coisa com certificados de segurança, procuro tutoriais no Google e passo até que finalmente funcione.

No entanto, em minhas pesquisas, muitas vezes me deparo com diferentes formatos de arquivo ( .key, .csr, .pem), mas nunca consegui encontrar uma boa explicação sobre qual é a finalidade de cada formato de arquivo.

Eu queria saber se o bom pessoal aqui do ServerFault poderia fornecer algum esclarecimento sobre este assunto?

certificate pki
  • 3 3 respostas
  • 1911405 Views

3 respostas

  • Voted
  1. Best Answer
    sysadmin1138
    2009-05-19T18:49:43+08:002009-05-19T18:49:43+08:00

    O SSL existe há tempo suficiente, você pensaria que haveria um acordo sobre os formatos de contêiner. E você está certo, existem. Muitos padrões como isso acontece. No final, todas essas são maneiras diferentes de codificar dados formatados em Abstract Syntax Notation 1 (ASN.1) — que é o formato em que os certificados x509 são definidos — de maneiras legíveis por máquina.

    • .csr - Esta é uma solicitação de assinatura de certificado. Alguns aplicativos podem gerá-los para envio às autoridades de certificação. O formato real é PKCS10 que é definido na RFC 2986 . Inclui alguns/todos os detalhes da chave do certificado solicitado, como assunto, organização, estado, outros enfeites, bem como a chave pública do certificado a ser assinado. Eles são assinados pela CA e um certificado é retornado. O certificado retornado é o certificado público (que inclui a chave pública, mas não a chave privada), que pode estar em alguns formatos.
    • .pem - Definido na RFC 1422 (parte de uma série de 1421 a 1424 ) este é um formato de contêiner que pode incluir apenas o certificado público (como instalações do Apache e arquivos /etc/ssl/certsde certificado CA ) ou pode incluir uma cadeia de certificados inteira incluindo chave pública, chave privada e certificados raiz. Confusamente, ele também pode codificar um CSR (por exemplo, como usado aqui ), pois o formato PKCS10 pode ser traduzido em PEM. O nome é de Privacy Enhanced Mail (PEM) , um método com falha para e-mail seguro, mas o formato de contêiner usado permanece e é uma tradução base64 das chaves x509 ASN.1.
    • .key - Este é um arquivo formatado (geralmente) PEM contendo apenas a chave privada de um certificado específico e é meramente um nome convencional e não padronizado. Nas instalações do Apache, isso geralmente reside em arquivos /etc/ssl/private. Os direitos sobre esses arquivos são muito importantes, e alguns programas se recusarão a carregar esses certificados se estiverem configurados incorretamente.
    • .pkcs12 .pfx .p12 - Originalmente definido pela RSA nos Padrões de Criptografia de Chave Pública (abreviado PKCS), a variante "12" foi originalmente aprimorada pela Microsoft e posteriormente enviada como RFC 7292 . Este é um formato de contêiner protegido por senha que contém pares de certificados públicos e privados. Ao contrário dos arquivos .pem, esse contêiner é totalmente criptografado. O Openssl pode transformá-lo em um arquivo .pem com chaves públicas e privadas:openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes

    Alguns outros formatos que aparecem de tempos em tempos:

    • .der - Uma maneira de codificar a sintaxe ASN.1 em binário, um arquivo .pem é apenas um arquivo .der codificado em Base64. O OpenSSL pode convertê-los em .pem ( openssl x509 -inform der -in to-convert.der -out converted.pem). O Windows os vê como arquivos de certificado. Por padrão, o Windows exportará certificados como arquivos formatados em .DER com uma extensão diferente. Curti...
    • .cert .cer .crt - Um arquivo formatado .pem (ou raramente .der) com uma extensão diferente, uma que é reconhecida pelo Windows Explorer como um certificado, que .pem não é.
    • .p7b .keystore - Definido na RFC 2315 como PKCS número 7, este é um formato usado pelo Windows para troca de certificados. Java entende isso nativamente e geralmente usa .keystorecomo uma extensão. Ao contrário dos certificados de estilo .pem, esse formato tem uma maneira definida de incluir certificados de caminho de certificação.
    • .crl - Uma lista de revogação de certificados. As Autoridades de Certificação os produzem como uma forma de desautorizar certificados antes da expiração. Às vezes, você pode baixá-los dos sites da CA.

    Em resumo, existem quatro maneiras diferentes de apresentar certificados e seus componentes:

    • PEM - Regido por RFCs, utilizado preferencialmente por software de código aberto por ser baseado em texto e, portanto, menos propenso a erros de tradução/transmissão. Pode ter uma variedade de extensões (.pem, .key, .cer, .cert, mais)
    • PKCS7 - Um padrão aberto usado por Java e suportado pelo Windows. Não contém material de chave privada.
    • PKCS12 - Um padrão privado da Microsoft que foi definido posteriormente em um RFC que fornece segurança aprimorada em relação ao formato PEM de texto simples. Isso pode conter chave privada e material de cadeia de certificados. É utilizado preferencialmente por sistemas Windows, podendo ser convertido livremente para o formato PEM através do uso de openssl.
    • DER - O formato pai do PEM. É útil pensar nele como uma versão binária do arquivo PEM codificado em base64. Não é muito usado rotineiramente fora do Windows.

    Eu espero que isso ajude.

    • 2087
  2. James F
    2009-06-07T07:19:28+08:002009-06-07T07:19:28+08:00

    O PEM por si só não é um certificado, é apenas uma forma de codificação de dados. Os certificados X.509 são um tipo de dados comumente codificados usando PEM.

    PEM é um certificado X.509 (cuja estrutura é definida usando ASN.1), codificado usando o ASN.1 DER (regras de codificação distintas), então executado através da codificação Base64 e preso entre linhas âncoras de texto simples (BEGIN CERTIFICATE e END CERTIFICATE ).

    Você pode representar os mesmos dados usando as representações PKCS#7 ou PKCS#12, e o utilitário de linha de comando openssl pode ser usado para fazer isso.

    Os benefícios óbvios do PEM é que é seguro colar no corpo de uma mensagem de e-mail porque possui linhas de âncora e é limpo em 7 bits.

    A RFC1422 tem mais detalhes sobre o padrão PEM relacionado a chaves e certificados.

    • 174
  3. mgold
    2012-03-15T16:24:54+08:002012-03-15T16:24:54+08:00

    Às vezes, um .crtarquivo já é um .pem. Veja: https://stackoverflow.com/questions/991758/openssl-pem-key

    • 63

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Resolver o nome do host do endereço IP

    • 8 respostas
  • Marko Smith

    Como posso classificar a saída du -h por tamanho

    • 30 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    Qual é o utilitário de linha de comando no Windows para fazer uma pesquisa reversa de DNS?

    • 14 respostas
  • Marko Smith

    Como verificar se uma porta está bloqueada em uma máquina Windows?

    • 4 respostas
  • Marko Smith

    Qual porta devo abrir para permitir a área de trabalho remota?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    MikeN No Nginx, como posso reescrever todas as solicitações http para https mantendo o subdomínio? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 Qual é a diferença entre colchetes duplos e simples no bash? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch Como altero a senha da minha chave privada? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt Como funciona a sub-rede IPv4? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve