Recebi um novo certificado SSL da GoDaddy e o antigo era da Comodo.
O conteúdo de /etc/ssl/private/pure-ftpd.pem
é o seguinte:
-----BEGIN PRIVATE KEY-----
PRIVATE KEY USED TO CREATE THE CSR
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
CONTENTS OF CRT FILE RECEIVED BY GODADDY
-----END CERTIFICATE-----
Depois de atualizar o conteúdo do arquivo, reiniciei pure-ftpd
e verifiquei o status:
/etc/init.d/pure-ftpd restart
/etc/init.d/pure-ftpd status
[ ok ] pure-ftpd is running.
Tudo parece bom. Agora tento verificar o novo certificado:
Edit : adicionei o arquivo "bundle" CRT
fornecido pelo GoDaddy em /etc/ssl/certs
, e agora recebo esta saída (mas ainda não consigo reiniciar apache2
devido aos erros mostrados abaixo)
openssl verify -CApath /etc/ssl/certs /etc/ssl/private/pure-ftpd.pem
pure-ftpd.pem: OK
Então tentei reiniciar apache2
(supondo que isso diga ao sistema para usar o novo certificado):
apache2ctl graceful
httpd not running, trying to start
Action 'graceful' failed.
The Apache error log may have more information.
Registro de erros do Apache:
[error] Unable to configure RSA server private key
[error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
Partes aparentemente relevantes de /etc/apache2/sites-available/default-ssl
:
O PEM
arquivo declarado SSLCertificateFile
precisa ser atualizado de alguma forma se eu tiver gerado uma nova chave privada? (Em caso afirmativo, o que exatamente precisa estar nele e como fazer isso?)
SSLCertificateFile /etc/ssl/certs/my.server.net.pem
SSLCertificateKeyFile /etc/ssl/private/my.server.net.key
Eu também tentei usar esses comandos para comparar o módulo de cada arquivo e eles são os mesmos:
openssl x509 -noout -modulus -in /etc/ssl/private/pure-ftpd.pem | openssl md5
openssl rsa -noout -modulus -in /etc/ssl/private/my.server.net.key | openssl md5
Alguém pode me apontar na direção certa?
Outra edição: quando acesso o servidor FTP por meio de um cliente como o FileZilla, sou recebido com as credenciais do novo certificado GoDaddy. Isso é ótimo, mas esse problema está me deixando maluco!
Sim, já que é o certificado que significa a parte pública da chave (e outros dados como datas de validade), então esta parte pública deve corresponder à parte privada no arquivo .key. Você não pode gerá-los separadamente.
Se o que você der no início for seu novo certificado, você deve criar os 2 arquivos
my.server.net.pem
e.key
colocando a parte dentro de BEGIN PRIVATE KEY/END PRIVATE KEY (incluindo essas linhas) no arquivo .key, e a próxima parte (com os cabeçalhos ) no arquivo .pem. No entanto, para o Apache2 TLS funcionar no final, ele também depende dos CN + SANs dentro do seu certificado. Caso tenha sido feito apenas para o nomeftp.myserver.whatever
e não também parawww.myserver.whatever
então os navegadores exibirão um alerta (por causa da incompatibilidade do nome).