Preciso configurar um servidor Apache 2 com SSL.
Eu tenho meu arquivo * .key, mas toda a documentação que encontrei online, arquivos * .crt são especificados, e meu CA forneceu-me apenas um arquivo * .cer.
Os arquivos * .cer são iguais a * .crt? Se não, como posso converter o CER para o formato CRT?
CER
eCRT
extensões não significam nada. Diferentes fornecedores de PKI usam extensões diferentes para a mesma coisa. Se o arquivo for binário, provavelmente está codificado em ASN.1 / DER. Se o arquivo for legível por humanos com-----BEGIN CERTIFICATE-----
, então seu PEM codificado. O que você tem (DER ou PEM) e o que você precisa (DER ou PEM)?Respostas:
As extensões de arquivo para certificados criptográficos não são tão padronizadas quanto você espera. Por padrão, o Windows trata o clique duplo em um
.crt
arquivo como uma solicitação para importar o certificado para o repositório de certificados raiz do Windows, mas trata um.cer
arquivo como uma solicitação apenas para visualizar o certificado. Portanto, eles são diferentes no sentido de que Windows tem algum significado inerente diferente para o que acontece quando você clica duas vezes em cada tipo de arquivo.Mas a maneira como o Windows lida com eles quando você clica duas vezes neles é a única diferença entre os dois. Ambas as extensões representam apenas que contém um certificado público. Você pode renomear um arquivo de certificado para usar uma extensão no lugar da outra em qualquer sistema ou arquivo de configuração que eu tenha visto. E em plataformas não-Windows (e até mesmo no Windows), as pessoas não são particularmente cuidadosas com a extensão que usam e as tratam de forma intercambiável, já que não há diferença entre elas, desde que o conteúdo do arquivo esteja correto.
Para tornar as coisas mais confusas, há duas maneiras padrão de armazenar dados de certificado em um arquivo: uma é uma codificação "binária" X.509 e a outra é uma codificação "texto" base64 que geralmente começa com "
-----BEGIN CERTIFICATE-----
". Eles codificam os mesmos dados, mas de maneiras diferentes. A maioria dos sistemas aceita os dois formatos, mas, se necessário, você pode converter um para o outro via openssl ou outras ferramentas. A codificação dentro de um arquivo de certificado é realmente independente da extensão que alguém deu ao arquivo.fonte
De acordo com a documentação mod_ssl :
O arquivo de certificado deve ser um arquivo de certificado X.509 codificado por PEM:
fonte
zscaler
, executandovagrant
emwin
(vbox
homestead
), instalando nossos certificados raiz confiáveis na caixa do vagrant? Euscp
os usei, usei sua conversão e os vinculei simbolicamente/etc/ssl/certs
e também copiei o conteúdo para oca-certificates.crt
arquivo antes de reprovisionar, e ainda estou recebendo umgoogle-recaptcha
tls
ssl
erro nafile_get_contents
dev box.Basicamente, existem dois tipos de codificação de certificado CER, DER e Base64. Quando o tipo DER retorna um certificado de carregamento de erro (rotinas de codificação asn1), tente o PEM e ele deve funcionar.
openssl x509 -inform DER -in certificate.cer -out certificate.crt
openssl x509 -inform PEM -in certificate.cer -out certificate.crt
fonte
Presumo que você tenha um arquivo .cer contendo dados de certificado codificados em PKCS # 7 e deseja convertê-los em dados de certificado codificados por PEM (normalmente um arquivo .crt ou .pem). Por exemplo, um arquivo .cer contendo dados codificados em PKCS # 7 tem a seguinte aparência:
Os dados do certificado PEM têm a seguinte aparência:
Há um comando OpenSSL que converterá arquivos .cer (com dados PKCS # 7) para os dados PEM que você pode esperar encontrar (o
BEGIN CERTIFICATE
bloco no exemplo acima). Você pode forçar os dados PKCS # 7 para o formato PEM por meio deste comando em um arquivo que chamaremos de certfile.cer:openssl pkcs7 -text -in certfile.cer -print_certs -outform PEM -out certfile.pem
Observe que um arquivo .cer ou .pem pode conter um ou mais certificados (possivelmente toda a cadeia de certificados).
fonte
CER é um certificado X.509 em formato binário, codificado por DER .
CRT é um certificado X.509 binário, encapsulado em codificação de texto ( base 64 ).
Não é a mesma codificação.
fonte
A resposta à pergunta como converter um arquivo .cer em um arquivo .crt (eles são codificados de forma diferente!) É:
fonte
openssl x509 -inform der -in certificate.cer -out certificate.pem
unable to load PKCS7 object
Eu uso o comando:
openssl x509 -inform PEM -in certificate.cer -out certificate.crt
Mas CER é um certificado X.509 em forma binária, codificado por DER. CRT é um certificado X.509 binário, encapsulado em codificação de texto (base 64).
Por isso, talvez você deva usar:
openssl x509 -inform DER -in certificate.cer -out certificate.crt
E então, para importar seu certificado:
Copie seu CA para dir:
/usr/local/share/ca-certificates/
Use o comando:
sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt
Atualize a loja CA:
sudo update-ca-certificates
fonte
Se o seu arquivo cer tiver formato binário, você deve convertê-lo por
fonte
Os arquivos .cer e .crt devem ser intercambiáveis, desde que sejam importados para um armazenamento de chaves.
Dê uma olhada no conteúdo do arquivo .cer. Apague tudo antes
-----BEGIN CERTIFICATE-----
e depois da-----END CERTIFICATE-----
linha. Você ficará com as linhas BEGIN / END com um monte de coisas codificadas em Base64 entre elas.Em seguida, basta importá-lo em seu arquivo de chaves usando o keytool.
fonte
Apenas faça
fonte