Falha na renovação do certificado LetsEncrypt

3

Eu tentei renovar o certificado do meu servidor. O atual expirou há 1 mês, mas eu não cuidei disso até agora.

Eu tentei usar o comando letsencrypt-auto renew , mas tive uma falha:

Observação: alterei os nomes de domínio / usuário / servidor.

user@vps:~/letsencrypt# ./letsencrypt-auto renew
Updating letsencrypt and virtual environment dependencies.......
Running with virtualenv: sudo /home/user/.local/share/letsencrypt/bin/letsencrypt renew
Processing /etc/letsencrypt/renewal/www.example.com.conf
2016-04-02 07:07:00,862:WARNING:letsencrypt.cli:Attempting to renew cert from /etc/letsencrypt/renewal/www.example.com.conf produced an unexpected error: You've asked to renew/replace a seemingly valid certificate with a test certificate (domains: www.example.com, example.com). We will not do that unless you use the --break-my-certs flag!. Skipping.

All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/live/www.example.com/fullchain.pem (failure)
1 renew failure(s), 0 parse failure(s)

Eu estupidamente tentei o comando com o --break-my-certs flag:

user@vps:~/letsencrypt# ./letsencrypt-auto renew --break-my-certs
Updating letsencrypt and virtual environment dependencies...You are using pip version 7.1.2, however version 8.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
....
Running with virtualenv: /root/.local/share/letsencrypt/bin/letsencrypt renew --break-my-certs
Processing /etc/letsencrypt/renewal/www.example.com.conf
new certificate deployed with reload of apache server; fullchain is /etc/letsencrypt/live/www.example.com/fullchain.pem

Congratulations, all renewals succeeded. The following certs have been renewed:
  /etc/letsencrypt/live/www.example.com/fullchain.pem (success)

Eu pensei que era isso, mas quando tentei me conectar ao meu site, recebi um erro informando que o certificado foi emitido por uma parte não confiável. (No entanto, as datas de validade estão corretas.)

Então eu tentei o primeiro comando novamente:

user@vps:~/letsencrypt# ./letsencrypt-auto renew
Updating letsencrypt and virtual environment dependencies.......
Running with virtualenv: /root/.local/share/letsencrypt/bin/letsencrypt renew
Processing /etc/letsencrypt/renewal/www.example.com.conf

The following certs are not due for renewal yet:
  /etc/letsencrypt/live/www.example.com/fullchain.pem (skipped)
No renewals were attempted.

Mas, como você pode ver, não funciona.

    
por Dan K. 02.04.2016 / 13:38

3 respostas

6

Tenha em mente que o procedimento de renovação usando o comando letsencrypt-auto funcionará bem se o certificado anterior foi emitido usando o comando letsencrypt-auto 0.4.0 ou superior. Se o seu certificado foi emitido com a versão mais antiga do letsencrypt-auto, será necessário emitir novamente o certificado da mesma forma e com as mesmas opções e parâmetros da primeira vez e, depois disso, a renovação automática do letsencrypt funcionará como esperado.

De qualquer forma, a primeira mensagem que você recebeu ao tentar renovar seu domínio foi:

You've asked to renew/replace a seemingly valid certificate with a test certificate (domains: www.example.com, example.com). We will not do that unless you use the --break-my-certs flag!. Skipping.

E isso significa que você tinha um certificado válido para seu domínio, mas o comando renew detectou que você estava tentando renovar o certificado com o servidor de armazenamento temporário em vez do servidor de produção (observação: o servidor de armazenamento temporário faz parte da infraestrutura letsencrypt e permite testar o certificado processo para emitir certificados para o seu domínio, mas emitido por uma CA falsa, se você verificar o seu certificado, você pode ver que o emissor é Fake LE Intermediate X1 ).

Então, conforme você repetiu o processo de renovação, mas usando o sinalizador --break-my-certs , agora você tem um certificado emitido por uma CA falsa que nenhum dos clientes que se conectarão ao seu site confiará.

Suponho que você estava jogando com algum conf em /etc/letsencrypt/cli.{conf,ini} , /etc/letsencrypt/renewal/yourdomain.conf ou qualquer arquivo de configuração usado para emitir o primeiro certificado e em algum conf você especificou o teste de bandeira para que o letsencrypt-auto esteja tentando renovar seu certificado em vez de produção.

Execute este comando no arquivo conf de renovação:

grep -E 'server\ =|config_file\ =' /etc/letsencrypt/renewal/yourdomain.conf

Observação: se você emitiu vários certificados para o seu domínio e adicionou ou removeu domínios do subconjunto de FQDNs incluídos no certificado, em vez de yourdomain.conf , você pode ter yourdomain-0001.conf , yourdomain-0002.conf e assim por diante.

config_file mostrará se você está usando um arquivo de configuração para o seu domínio, se você não usar nenhum arquivo de configuração, verá a palavra Nenhum.

o servidor mostrará se você está emitindo seus certificados em relação ao servidor de teste ou de produção.

Se estiver em teste, você verá isso:

server = https://acme-staging.api.letsencrypt.org/directory

se for produção, você verá:

server = https://acme-v01.api.letsencrypt.org/directory

Se você vir que o servidor está apontando para o armazenamento temporário, edite o arquivo de configuração de renovação do seu domínio e altere-o para produção https://acme-v01.api.letsencrypt.org/directory

Além disso, se você tiver um config_file, deverá verificar esse arquivo de configuração para ter certeza de que a opção do servidor está apontando para produção e não há opções como staging, staging = True, test-cert ou test-cert = True

Depois de ter removido as opções de teste e alterado o servidor para o de produção no arquivo de configuração e no arquivo de configuração de renovação, você pode tentar renovar novamente o seu certificado.

./letsencrypt-auto renew --force-renewal

Se você finalmente obter o certificado para seu domínio, preste atenção na mensagem de parabéns, essa mensagem informará o diretório onde seus certificados foram salvos. Lembre-se de configurar seu servidor da Web, servidor de e-mail, qualquer que seja o caminho certo aos seus certs.

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/yourdomain/fullchain.pem. Your cert
   will expire on xxxx-xx-xx. To obtain a new version of the
   certificate in the future, simply run Let's Encrypt again.
    
por 02.04.2016 / 19:14
1

Eu tenho o mesmo problema que o OP usando o certificado mais recente. Acontece que não foi a falha do certbot em tudo - ele funciona perfeitamente - você só precisa se lembrar de reiniciar / recarregar o seu servidor web para puxar o certificado atualizado! Então, como o LetsEncrypt sugere colocar certbot renew --quiet no seu cron, lembre-se de adicionar um servidor web recarregando alguns minutos depois, no caso do nginx /etc/init.d/nginx reload

    
por 22.11.2016 / 22:09
0

Eu tive o mesmo problema, você tem que reiniciar o seu servidor web (Apache ou nginx).
Eu usei certbot renew --quiet para renovar.

    
por 20.06.2017 / 19:38