Eu sou responsável por manter dois servidores Debian. Toda vez que tenho que fazer alguma coisa com certificados de segurança, busco tutoriais no Google e vou embora até que finalmente funcione.
No entanto, em minhas pesquisas eu muitas vezes deparamos com diferentes formatos de arquivo ( .key
, .csr
, .pem
), mas eu nunca fui capaz de encontrar uma boa explicação sobre o propósito de cada formato de arquivo é.
Eu queria saber se as pessoas boas aqui no ServerFault poderiam fornecer alguns esclarecimentos sobre este assunto?
certificate
pki
Noah Goodrich
fonte
fonte
Respostas:
O SSL existe há bastante tempo, você acha que haveria um acordo sobre os formatos dos contêineres. E você está certo, existem. Muitos padrões como isso acontece. Então é isso que eu sei, e tenho certeza de que outros irão gritar.
/etc/ssl/certs
) ou pode incluir uma cadeia de certificados inteira, incluindo chave pública, chave privada e certificados raiz. De maneira confusa, ele também pode codificar um CSR (por exemplo, como usado aqui ), pois o formato PKCS10 pode ser traduzido para o PEM. O nome é de Privacy Enhanced Mail (PEM) , um método com falha para email seguro, mas o formato do contêiner usado permanece e é uma tradução base64 das chaves x509 ASN.1./etc/ssl/private
. Os direitos sobre esses arquivos são muito importantes e alguns programas se recusam a carregar esses certificados se estiverem configurados incorretamente.openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes
Alguns outros formatos que aparecem periodicamente:
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. Gostar....keystore
como uma extensão. Ao contrário dos certificados no estilo .pem, esse formato tem uma maneira definida de incluir certificados de caminho de certificação.Em resumo, existem quatro maneiras diferentes de apresentar certificados e seus componentes:
Eu espero que isso ajude.
fonte
ssh-keygen
. Seria útil saber como isso se relaciona com o resto.O PEM por si só não é um certificado, é apenas uma maneira de codificar dados. Os certificados X.509 são um tipo de dados geralmente codificado usando o PEM.
O PEM é um certificado X.509 (cuja estrutura é definida usando ASN.1), codificado usando o ASN.1 DER (regras de codificação distintas), depois é executado através da codificação Base64 e preso entre as 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 email porque possui linhas de ancoragem e é limpo em 7 bits.
O RFC1422 possui mais detalhes sobre o padrão PEM, relacionado a chaves e certificados.
fonte
openssl x509 -inform der -in cert.cer -out cert.pem
. Para converter um arquivo PEM DER:openssl x509 -outform der -in cert.pem -out certi.der
. Para converter um arquivo PKCS # 12 (.pfx .p12) contendo uma chave privada e certificados para PEM:openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes
. Para converter um arquivo de certificado PEM e uma chave privada em PKCS # 12 (.pfx .p12):openssl pkcs12 -export -out cert.pfx -inkey privateKey.key -in cert.crt -certfile CACert.crt
A partir daquiÀs vezes, um
.crt
arquivo já é um arquivo.pem
. Consulte: https://stackoverflow.com/questions/991758/openssl-pem-keyfonte
.foobar
para tudo o que importa ...