Recentemente, recuperei meu certificado SSL, que comprei na Gandi, usando o seguinte comando:
openssl req -nodes -newkey rsa:2048 -sha256 -keyout server.key -out server.csr
Isso gera dois arquivos, server.csr
e server.key
Então, eu carrego a solicitação de assinatura para Gandi, que em troca me fornece o certificado do meu servidor, bem como um certificado intermediário. Eu então concateno estes.
cat my-cert-from-gandi.crt intermediate.crt > chained-certificate.crt
Em seguida, na minha configuração do nginx:
ssl on;
ssl_certificate /etc/nginx/certificates/chained-certificate.crt;
ssl_certificate_key /etc/nginx/certificates/server.key;
Então, quando tento testar essa configuração ( nginx -t
), recebo a seguinte saída:
nginx: [emerg]
SSL_CTX_use_PrivateKey_file("/etc/nginx/certificates/server.key")
failed (SSL: error:0B080074:x509 certificate
routines:X509_check_private_key:key values mismatch)
O módulo do server.key
corresponde ao módulo de server.csr
. No entanto, o módulo de my-cert-from-gandi.crt
não não corresponde ao módulo da minha chave privada ...
Uma possível dica aqui é que o certificado intermediário parece ter mudado no final de Gandi desde a última vez que fiz isso. Anteriormente continha um único bloco BEGIN/END
e agora contém dois. Não tenho certeza se isso significa que eu tenho que fazer algo diferente.
Qualquer ajuda é muito apreciada.