Problema ao configurar o certificado SSL certificado

1

Eu tenho um certificado assinado com o nic que estou tentando configurar no meu servidor apache sem muita sorte :(. Para este certificado ser gerado, eles precisavam de CSR do meu lado. Eu criei o CSR usando os seguintes comandos:

Criado primeiro o arquivo keystore usando o comando -

keytool -genkey -alias generated -keyalg RSA -keysize 2048 -keystore generated.keystore

CSR gerado deste keystore usando o seguinte comando:

keytool -certreq -keyalg RSA -alias generated -file generated.csr -keystore generated.keystore

Meu csr parecia:

-----BEGIN NEW CERTIFICATE REQUEST-----
MIIC7jCCAdYCAQAwgagxCzAJBgNVBAYTAklOMRAwDgYDVQQIEwdNYW5pcHVyMQ8wDQYDVQQHEwZJ
bXBoYWwxNTAzBgNVBAoTLE1hbmlwdXIgU3RhdGUgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBTb2Np
ZXR5MRkwFwYDVQQLDBBTUCBTU0RHICYgZUZvcm1zMSQwIgYDVQQDExt3d3cubWFuaXB1cnBvcnRh
......
......
bC5tbi5nb3YuaW4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRVxKwt/xCiAgGfuCs
ud5kcf+BKQURwKExLHUeUNQHpT1IMcx/is9anki+u3ijFbV1ei/ybgSRzFgesem+yTUutTYCgyqd
U7ZxJTuKmHDkZCVEBzGxl+Jl8AQxHHQzBI9PWuCBURR0q1eNeasfO3yWZpkRvK58uXf6vGZakYHZ
-----END NEW CERTIFICATE REQUEST-----

Eles geraram um arquivo de certificado (.cer) para isso, que se parece com:

-----BEGIN CERTIFICATE-----
MIIEKTCCAxGgAwIBAgIJEiLiRbpaYkqOMA0GCSqGSIb3DQEBCwUAMGYxCzAJBgNV
BAYTAklOMSQwIgYDVQQKExtOYXRpb25hbCBJbmZvcm1hdGljcyBDZW50cmUxDzAN
BgNVBAsTBlN1Yi1DQTEgMB4GA1UEAxMXTklDIHN1Yi1DQSBmb3IgTklDIDIwMTEw
HhcNMTIwMTIzMDcyNzEyWhcNMTQwMTIyMDcyNzEyWjAmMSQwIgYDVQQDExt3d3cu
bWFuaXB1cnBvcnRhbC5tbi5nb3YuaW4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQDRVxKwt/xCiAgGfuCsud5kcf+BKQURwKExLHUeUNQHpT1IMcx/is9a
nki+u3ijFbV1ei/ybgSRzFgesem+yTUutTYCgyqdU7ZxJTuKmHDkZCVEBzGxl+Jl
8AQxHHQzBI9PWuCBURR0q1eNeasfO3yWZpkRvK58uXf6vGZakYHZ9vWAYP7uhtMP
5je1Scqcc09vB5F33ux2svkwzXPxB+KOwx2stvKJ93Vw2VChLLDNByW321L/A7AA
nwZ4Jdplh/z+armGZtQO27kgNQdWAA7wQ2wr
..
...
..
fDpYOCBy87y4C6CrCaR9WMrAOP2PIazHZFKNjz0sng6TOVQ+SxBW0mmBWJamt2DJ
RoBV8pUPMvKmO6ptqklhWOYe4lIIbowhM9K7qyQR03ICiGwMuocj6IbGrJwdfgr1
CTm+L1Zs7UNMJvNxBXTZ41gd9tRazFdo5yAqKO4nPXys0oV6NAmFtUjix+sy6rkn
4O5pyizzRdB2ABcBbpn2yTEggerL2SBwxEwoD1WR3+b09UNZKMBDkHcd8HuJ3NpO
F4b5LXnKDXNG9ZKFUVxcDM70mD0YH/ypCthp/2aBFzV46yF73hqXaQwMNQY+dd+R
orWm8k2LfwFOxs5jqQ==
-----END CERTIFICATE-----

Configuração do Apache no arquivo ssl.conf:

SSLCertificateFile /etc/pki/tls/certs/signed.cer
SSLCertificateKeyFile /etc/pki/tls/private/generated.keystore

Agora, quando eu inicio meu apache, recebo um erro dizendo:

[Tue Jan 24 13:10:38 2012] [error] Init: Private key not found
[Tue Jan 24 13:10:38 2012] [error] SSL Library Error: 218710120 error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag
[Tue Jan 24 13:10:38 2012] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Tue Jan 24 13:10:38 2012] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
[Tue Jan 24 13:10:38 2012] [error] SSL Library Error: 218734605 error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib

Alguém sabe qual é o problema?

    
por Ankit 24.01.2012 / 08:57

3 respostas

5

Você precisa converter a chave privada do formato de keystore Java para o formato PEM usado pelo OpenSSL. Com a versão keytool do JDK > = 1.6, você pode fazer isso primeiro convertendo o keystore no formato PKCS # 12 e, em seguida, extraindo apenas a chave privada:

keytool -importkeystore -srckeystore generated.keystore -destkeystore generated.p12 -deststoretype PKCS12
openssl pkcs12 -in generated.p12 -out generated.pem -nocerts

Isso grava o arquivo de chave privada em generated.pem; em seguida, especifique este arquivo na configuração do Apache:

SSLCertificateKeyFile /etc/pki/tls/private/generated.pem

Como o arquivo de chave privada é, por padrão, criptografado com uma senha, sempre que você iniciar o Apache, será necessário digitar essa senha. Você pode usar o SSLPassPhraseDialog para fornecer a senha automaticamente ou apenas adicionar a opção -nodes ao comando openssl pkcs12 para produzir um arquivo de chave privada não criptografado.

    
por 24.01.2012 / 09:56
2

Você precisa apontar SSLCertificateKeyFile para uma chave privada, não para um keystore.

    
por 24.01.2012 / 09:44
1

Instale o Apache mod ssl

# yum install mod_ssl

Vá para a pasta certs em centos 6

# cd /etc/ssl/certs/

Regenerar Chave Privada e CSR com a ajuda do seguinte comando OpenSSL

# openssl req -nodes -newkey rsa:2048 -keyout namhuy_net.key -out namhuy_net.csr

Obtenha o certificado raiz da CA da Verisign, Thawte, Globalsign, Comodo. Depois de adquirir um certificado desse fornecedor, você receberá um e-mail com arquivos de certificado. Envie esses arquivos para

/etc/ssl/certs/

Salve o arquivo combinado como namhuy_net.pem. O arquivo .pem agora está pronto para uso.

O arquivo de configuração SSL do Apache é onde acabei colocando as configurações para o meu servidor.

# nano /etc/httpd/conf.d/ssl.conf

Editar linhas

SSLEngine on
SSLCertificateFile /etc/ssl/certs/namhuy_net.crt
SSLCertificateKeyFile /etc/ssl/certs/namhuy_net.key
SSLCertificateChainFile /etc/ssl/certs/namhuy_net.pem

Reinicie o serviço httpd

# service httpd restart

Fonte: link

    
por 21.12.2013 / 04:21