Depois de implantar o cluster QUIC, o certificado https originalmente solicitado expirou, então tentei reinstalar / atualizar o certificado.
Let's Encrypt é um projeto gratuito que emite certificados https automaticamente.
Certbot é a ferramenta oficial de geração de certificados do cliente recomendada por Let's Encrypt
Porque meu cluster quic copia diretamente o certificado original para um diretório personalizado, então o certbot não foi instalado, então instale o certbot primeiro.
Instale o Certbot
Instale primeiro o snapd, de acordo com seu próprio sistema Linux (o meu é o Red Hat Enterprise Linux 8), selecione o tutorial de instalação do snapd correspondente
Instale o snapd
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
$ sudo dnf upgrade
$ sudo yum install snapd
Criar soft link
$ sudo systemctl enable --now snapd.socket
$ sudo ln -s /var/lib/snapd/snap /snap
Instale o Certbot
## 更新snap到最新的版本
sudo snap install core
sudo snap refresh core
## 去除其余Certbot操作系统包 确保安装后使用certbot命令使用的是snap
sudo apt-get remove certbot
sudo dnf remove certbot
sudo yum remove certbot
sudo snap install --classic certbot
#创建软链接
sudo ln -s /snap/bin/certbot /usr/bin/certbot
renovar certificado
Como eu armazenei o certificado antigo na máquina, minha ideia inicial era atualizar diretamente o certificado antigo. Primeiro, certbot certificates
verifique as informações do certificado do servidor atual,
mas o resultado não retornou as informações do certificado atual para mim. Acho que pode ser porque apenas migrei o arquivo pem necessário para configurar o nginx quando migrei o certificado, e o caminho de armazenamento também é diferente do caminho padrão quando o cluster antigo instalou o certificado.
Empacotei todos os arquivos no caminho do certificado original / etc / letsencrypt e carreguei-os no mesmo caminho na máquina Nginx do novo cluster e usei o certbot certificates
certificado de verificação para ver o certificado antigo.
Em seguida, use o certbot renew
comando para atualizar o certificado .
Problemas encontrados:
Ao renovar o certificado, haverá um erro conforme relatado, dizendo que a
conexão falha ao acessar xxx / .well-known / acme-challenge / xxx para verificar a propriedade do nome de domínio.
Como o cluster nginx implantado por aws vincula o nome de domínio ao balanceador de carga, o balanceador de carga ouviu apenas a porta 443 do quic no início. Depois de adicionar a escuta à porta 80, ele não avisa mais que não pode se conectar e retorna um 404 código de erro.
O julgamento foi devido à inacessibilidade do caminho acima. Depois de muitas tentativas, não foi possível encontrar o caminho. Por fim, pensei que essa solicitação fosse para verificar a propriedade do nome de domínio, mas vinculei o nome de domínio ao balanceador de carga , não é o servidor que atualizou o certificado., Vincule o nome de domínio ao ip do servidor e execute novamente certbot renew
, a atualização foi bem-sucedida
Como o caminho do novo certificado é diferente do anterior, o caminho do certificado no arquivo de configuração nginx precisa ser modificado da seguinte maneira:
ssl_certificate /etc/letsencrypt/live/you.domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/you.domain.com/privkey.pem;
Depois de atualizar o certificado, vincule o nome de domínio ao balanceador de carga
Limite de frequência de solicitação de certificado Letencrypt
https://letsencrypt.org/zh-cn/docs/rate-limits/
Há um limite de 5 falhas de verificação por conta por hora por domínio. O limite é maior no ambiente de teste (60 falhas de verificação são permitidas por hora)
O limite de até 5 certificados duplicados por nome de domínio registrado por semana
Portanto, quando eu uso repetidamente o comando certbot renew, pode aparecer um aviso de que o limite superior foi atingido. Apenas tente novamente após um período de tempo.
No final, acabei de migrar e atualizar o certificado, mas ainda haverá problemas com a atualização subsequente desta operação (o nome de domínio precisa ser vinculado ao ip do servidor correspondente), o que é ainda mais problemático.
O acompanhamento continuará a estudar, se houver uma boa solução, o blog será atualizado. Se você lidou com problemas semelhantes, você pode compartilhá-lo
Próximo:
Instalando o snap no Red Hat Enterprise Linux (RHEL) Nenhuma das opções
acima no CentOS / RHEL 8