Apache - Gera chave privada a partir de um arquivo .crt existente

5

Eu tenho algumas instâncias do apache sendo executadas sem problemas com um certificado gerado em casa. Agora eu tenho que usar um certificado fornecido, mas o que eu enviei é apenas um arquivo .crt. Tentei copiá-lo para o diretório correto, mas quando tento reiniciar o servidor, ele registra:

SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch

O que eu acho correto, porque o arquivo .key é o que eu mesmo criei. Existe alguma maneira de gerar o arquivo .key adequado do .crt?

    
por ludiegu 07.01.2014 / 10:44

1 resposta

7

Para o seu certificado auto-assinado, você provavelmente fez algo assim:

$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
       -keyout mysitename.key -out mysitename.crt

E, em seguida, criamos linhas como esta para o Apache:

<VirtualHost 192.168.0.1:443>
DocumentRoot /var/www/website
ServerName www.domain.com
SSLEngine on
SSLCertificateFile /etc/ssl/crt/primary.crt
SSLCertificateKeyFile /etc/ssl/crt/private.key
SSLCertificateChainFile /etc/ssl/crt/intermediate.crt
</VirtualHost> 

Com um certificado assinado pela CA, as coisas mudam um pouco. Você precisa usar o private.key que foi usado para assinar o certificado da CA e não o arquivo usado para fazer o certificado de assinatura automática.

Em alguns casos, você pode exportar a chave do arquivo fornecido, mas precisamos saber mais informações sobre o arquivo de certificado que você recebeu.

Exemplo

Eu lidei com arquivos .p12 onde precisei extrair o arquivo .key dele.

$ openssl pkcs12 -in star_qmetricstech_com.p12 -out star_qmetricstech_com.key 

Mas, com certificados SSL, há muitos tipos de arquivos contêineres e, portanto, é preciso prestar atenção especial aos diferentes arquivos e quais foram usados juntos.

Referências

por 07.01.2014 / 12:19