Certificação RapidSSL - não consigo trabalhar para o nginx

2

Nós compramos um certificado SHA-2 da RapidSSL, mas eu não posso para a vida de mim fazê-lo funcionar! Primeiro criamos arquivos .key e .crt no servidor de destino, usando (obviamente, apagando as coisas importantes);

openssl req -new -newkey rsa:2048 -nodes -out www_x.com.csr -keyout www_x_com.key -subj "/C=GB/ST=x/L=x/O=x/CN=www.x.com"

Isso criou os arquivos .crt e .key. Agora, salvei o certificado que eles me enviaram como main.crt . Então, no e-mail, eles me enviam para:

link

Aqui, eles têm 2 certificados intermediários SHA-2 ... Estou assumindo que o segundo que eu precisaria? (nem tenho certeza do que é o primeiro!)

Então, depois de salvar que eu cat os arquivos:

cat www_x.com.csr CA_Cert.crt > new.crt

(também tentei o contrário: cat CA_Cert.crt www_x.com.csr > new.crt , mas nenhum dos dois funciona)

Então, na minha configuração do nginx eu tenho:

ssl    on;
ssl_certificate        /home/test/certs/new.crt;
ssl_certificate_key    /home/test/certs/www_x_com.key;

.. então, quando eu reiniciar, recebo um erro com falha:

nginx[30762]: nginx: [emerg] SSL_CTX_use_PrivateKey_file("/home/test/certs/www_x_com.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)

Alguém pode ajudar? Eu estou acostumado a ser fornecido com um arquivo ZIP que tem tudo que eu preciso nele ... mas não é assim com esses caras!

ATUALIZAÇÃO: Tudo funcionando! Obrigado a todos pela vossa ajuda. Acontece que é um golpe duplo:

1) A pessoa para quem eu estava fazendo (que comprou o certificado SSL) não pensou em inserir o código CSR ao gerar o certificado =) 2) cat estava colocando os certificados sem pausa - então estava lendo tudo como uma linha

Fora isso, tudo parece estar funcionando agora. Fico feliz que os fora do caminho, foi me levando até o muro !!!

    
por Andrew Newby 04.09.2015 / 10:36

2 respostas

3

A partir da confirmação nos comentários e do que você colocou na pergunta

cat www_x.com.csr CA_Cert.crt > new.crt

O que você deveria ter feito é

cat x.com.crt CA_Cert.crt > new.crt

O csr é usado para passar para o CA, que neste caso RapidSSL, para eles criarem o crt.

    
por 04.09.2015 / 11:26
3

"Incompatibilidade de valores-chave" significa que a chave privada para a qual você está apontando nginx não é a mesma chave privada da qual a chave pública no certificado correspondente foi derivada. Como Drifter104 mencionou, você parece estar concatenando o CSR com o certificado de CA intermediário, o que definitivamente poderia causar esse problema (o nginx ignorará o CSR e assumirá que o certificado intermediário é o certificado da entidade final, o que causaria esse problema). Caso contrário, você conseguiu misturar suas chaves e, se não conseguir encontrar a chave correta, será necessário obter uma nova assinatura da autoridade de certificação.

    
por 04.09.2015 / 11:32