Estou usando o certbot para gerar certificados SSL para meu site. Tive um problema (por causa de um erro de script cron e python2 desatualizado, agora resolvido) em que a atualização automática não funcionava. Agora tenho arquivos de licença atualizados em meu servidor.
Os arquivos de licença estão em um arquivo em letsencrypt, o número parece aumentar a cada atualização (fullchain3 é a mais recente):
root@mysite /etc/letsencrypt/live/mysite.com # ls -l ../../archive/mysite.com/ total 48K -rw-r--r-- 1 root root 3.4K Sep 8 2017 fullchain1.pem -rw-r--r-- 1 root root 3.5K May 8 17:02 fullchain2.pem -rw-r--r-- 1 root root 3.5K Jul 7 21:19 fullchain3.pem
um link simbólico aponta para o mais recente e o lighty está configurado para seguir o link:
root@mysite /etc/letsencrypt/live/mysite.com # ls -l ../../live/mysite.com/fullchain.pem lrwxrwxrwx 1 root root 39 Jul 7 21:19 ../../live/mysite.com/fullchain.pem -> ../../archive/mysite.com/fullchain3.pem
No entanto, SSLLabs me diz que meu certificado está desatualizado e, quando verifico os números de série dos arquivos de licença, descobri que eles estão obtendo fullchain2.pem.
Lighty foi reiniciado. mod-compress está em execução, isso pode estar armazenando em cache o arquivo de certificado antigo, mesmo após uma reinicialização? e se sim, como posso dizer para não fazer isso? se não, qual é a causa?
ATUALIZAÇÃO: Tentei parar levemente, limpar o diretório de cache e reiniciar. O mesmo resultado, o mesmo arquivo parece ser veiculado ...
Responder1
OK, problema resolvido.
Para lighty, uma etapa adicional é necessária após a atualização dos certificados. Basicamente, um novo arquivo deve ser criado manualmente concatenando dois arquivos no diretório cert. veja link abaixo:
https://www.bytebang.at/Blog/Free+SSL+certificate+for+lighttpd+with+letsencrypt
se isso não for feito, o log de erros do lighty ficará cheio de mensagens de "certificado expirado".
(Não vou fornecer o procedimento completo de configuração aqui, mas, essencialmente, após atualizar os certificados, você precisa fazer o seguinte:
cat privkey.pem cert.pem > web.pem
que deve corresponder à linha
ssl.pemfile = "/etc/letsencrypt/live/mysite.com/web.pem"
em sua configuração leve.
Como foi apontado abaixo, na verdade não deveria ser necessário usar o arquivo concatenado com o lighty mais recente, mas em vez de alterar minha configuração (de outra forma estável), criei um script bash simples para gerenciar a atualização do certificado e também criar a concatenação arquivos:
#!/bin/bash
function update_web { cd $1 if [ web.pem -ot cert.pem ]; then echo updating web.pem in $1 cat privkey.pem cert.pem > web.pem fi }
/root/certbot/certbot-auto renew --no-self-upgrade update_web /etc/letsencrypt/live/mysite.com update_web /etc/letsencrypt/live/www.mysite.com