¿Cuál es la forma correcta de utilizar certbot para subdominios servidos a través de nginx?

¿Cuál es la forma correcta de utilizar certbot para subdominios servidos a través de nginx?

Supongo que me falta algo, porque cada vez que intento cargar contenido presionando el subdominio en mi navegador, dice "no seguro", a pesar de que seguí los pasos siguientes después de ejecutar sudo certbot --nginxsin errores.

Aquí está mi archivo de configuración para 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
}

No sé si esto importa, pero... el dominio raíz principal, blainelafreniere.io apunta a un VPS completamente diferente. Mi dominio blainelafreniere.io está protegido con su propio certificado SSL y actualmente estoy intentando generar un nuevo certificado SSL solo para el subdominio, en este caso, lms-api.blainelafreniere.io.

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

¿Es necesario utilizar también el certificado del dominio principal para proteger los subdominios? ¿O puedo generar un nuevo certificado por subdominio?

Respuesta1

Con elDesafío HTTP-01solo puede obtener certificados para nombres de host específicos (posiblemente con múltiples SAN). Según la transparencia del certificadoregistros parablainelafreniere.iono tiene un certificado comodín para *.blainelafreniere.io, por lo que ni siquiera podría usar el mismo certificado para sus subdominios. (Es posible obtener certificados comodín conDesafío DNS-01, pero eso no es necesario ni siquiera óptimo para este caso).

Los registros también indican que Let's Encrypt ha emitido certificados exitosamente para sus dos subdominios ( lms.apiy lms), yesa es la forma correcta de hacer esto.

Para las renovaciones automáticas, debe mantener http://example.com/.well-known/acme-challenge/accesible y atendiendo la ubicación especificada en la configuración de Let's Encrypt/Certbot (por ejemplo, en /etc/letsencrypt/renewal/).

Actualmente, el servidor 34.200.239.16no responde en absoluto a la solicitud HTTPS. Esto no es un problema con los certificados; O tu Nginx no está escuchando en el puerto 443 o hay algún firewall que lo bloquea:

$ 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

información relacionada