Erro ao tentar iniciar o Apache após instalar o certificado SSL

6

Estou tentando instalar um certificado SSL e recebo os seguintes erros:

AH02241: Init: Unable to read server certificate from file /path/my.crt
SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=X509)
AH02312: Fatal error initialising mod_ssl, exiting.

Aqui está o processo que eu segui:

Gerei minha chave privada com:

openssl genrsa -out my.key 2048

Eu criei o CSR com:

openssl req -new -key my.key -out my.csr

Eu forneci o CSR para nosso departamento de TI e eles retornaram um crt - ele começa com

-----BEGIN CERTIFICATE-----

Meu arquivo ssl.conf (my.example.com corresponde ao nome comum usado durante a geração do CSR):

 <VirtualHost my.example.com:443>
   SSLEngine On
   ServerName my.example.com 
   SSLCertificateFile /path/my.crt
   SSLCertificateKeyFile /path/my.key
 </VirtualHost> 

Eu não tenho o conjunto de arquivos SSLCertificateChainFile ou SSLCACertificate.

A chave privada começa com

----BEGIN RSA PRIVATE KEY-----

O csr começa com

-----BEGIN CERTIFICATE REQUEST-----

Eu verifiquei que ambos:

openssl rsa -noout -modulus -in my.key
openssl req -noout -modulus -in my.csr 

produza a mesma saída. Eu não consigo descobrir como verificar o crt - tentar tanto o x509 quanto o rsa produzem um erro.

Esse processo deve ter funcionado? Posso verificar se my.crt corresponde à chave de alguma forma?

    
por chris 01.11.2012 / 16:20

3 respostas

7

Acontece que o certificado que eu recebi foi ruim.

Rodando

openssl x509 -in my.crt -text

deveria ter funcionado, mas como o certificado estava corrompido, produziu erros:

unable to load certificate
140513785948000:error:0D07209B:asn1 encoding routines:ASN1_get_object:too long:asn1_lib.c:142:
140513785948000:error:0D068066:asn1 encoding routines:ASN1_CHECK_TLEN:bad object header:tasn_dec.c:1306:
140513785948000:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=X509
140513785948000:error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib:pem_oth.c:83:

Eu acho que deveria ter notado que as linhas no bloco ao visualizar o certificado ruim não eram todas do mesmo tamanho.

    
por 01.11.2012 / 18:21
3

Para:

SSLCertificateFile my.crt
SSLCertificateKeyFile my.key

Você deve estar usando o caminho completo para esses arquivos, por exemplo:

SSLCertificateFile /home/vhosts/domain.com/keys/my.crt
SSLCertificateKeyFile /home/vhosts/domain.com/keys/my.crt

Atualize os caminhos corretos e reinicie o Apache para aplicar as alterações. Poste de volta com um erro / mensagem atualizado se o problema persistir.

-Brendan

    
por 01.11.2012 / 16:28
0

Apenas para registro: eu tive o mesmo tipo de relatório de erros e o problema não estava no certificado, mas na configuração.

Por engano, defini a chave como o certificado e o certificado como a chave. O resultado foi a mesma mensagem de erro.

O erro resultou do fato de minha configuração de referência ter apresentado esses itens na ordem inversa.

Até mesmo o exemplo de @Brendan tem esse erro, pois ele referencia duas vezes o certificado - tanto para o certificado quanto para a chave.

Certifique-se de verificar se está fazendo referência aos arquivos corretos no parâmetro correto.

    
por 24.05.2016 / 23:04