Qual é a maneira correta de usar o certbot para subdomínios atendidos via nginx?

Qual é a maneira correta de usar o certbot para subdomínios atendidos via nginx?

Acho que deve estar faltando alguma coisa, porque toda vez que tento carregar conteúdo acessando o subdomínio no meu navegador, aparece "não seguro", embora eu tenha seguido as etapas seguintes após a execução sudo certbot --nginxsem erros.

Aqui está meu arquivo de configuração para o vhost:

server {                                                                                                                                         
        listen 80;                                                                                                                               
        listen [::]:80;                                                                                                                          

        root /var/www/lms/;                                                                                                                      

        server_name lms.blainelafreniere.io;                                                                                                     

        location / {                                                                                                                             
                try_files $uri /index.html;                                                                                                      
        }                                                                                                                                        
}                                                                                                                                                

server {

        server_name lms-api.blainelafreniere.io;

        location / {
                proxy_pass http://127.0.0.1:3001;
        }

        listen [::]:443 ssl ipv6only=on; # managed by Certbot
        listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/lms-api.blainelafreniere.io/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/lms-api.blainelafreniere.io/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}


server {
    if ($host = lms-api.blainelafreniere.io) {

        return 301 https://$host$request_uri;
    } # managed by Certbot
    listen 80;
    listen [::]:80;

    server_name lms-api.blainelafreniere.io;
    return 404; # managed by Certbot
}

Não sei se isso importa, mas... o domínio raiz principal, blainelafreniere.io, está apontando para um VPS totalmente diferente. Meu domínio blainelafreniere.io é protegido com seu próprio certificado SSL e atualmente estou tentando gerar um novo certificado SSL apenas para o subdomínio, neste caso, lms-api.blainelafreniere.io.

blainelafreniere.io => servidor A lms.blainelafreniere.io, lms-api.blainelafreniere.io => servidor B

O certificado do domínio principal também precisa ser usado para proteger subdomínios? Ou posso gerar um novo certificado por subdomínio?

Responder1

Com oDesafio HTTP-01você só pode obter certificados para nomes de host especificados (possivelmente com vários SAN). De acordo com a transparência do certificadoregistros parablainelafreniere.iovocê não tem um certificado curinga para *.blainelafreniere.io, então não pode nem usar o mesmo certificado para seus subdomínios. (A obtenção de certificados curinga é possível comDesafio DNS-01, mas isso não é necessário nem ideal para este caso.)

Os logs também informam que Let's Encrypt emitiu certificados com sucesso para ambos os seus subdomínios ( lms.apie lms) eessa é a maneira correta de fazer isso.

Para as renovações automáticas você deve manter http://example.com/.well-known/acme-challenge/acessível e servindo o local especificado na configuração do Let's Encrypt / Certbot (por exemplo, em /etc/letsencrypt/renewal/).

Atualmente, o servidor 34.200.239.16não está respondendo à solicitação HTTPS. Isto não é um problema com os certificados; ou o seu Nginx não está escutando na porta 443 ou há algum firewall bloqueando-o:

$ dig lms.blainelafreniere.io +short
34.200.239.16

$ dig lms-api.blainelafreniere.io +short
34.200.239.16

nc 34.200.239.16 443 -nvvv
(UNKNOWN) [34.200.239.16] 443 (https) : Connection timed out
 sent 0, rcvd 0

informação relacionada