nginx를 통해 제공되는 하위 도메인에 certbot을 사용하는 올바른 방법은 무엇입니까?

nginx를 통해 제공되는 하위 도메인에 certbot을 사용하는 올바른 방법은 무엇입니까?

오류 없이 실행한 후 다음 단계를 수행했음에도 불구하고 브라우저에서 하위 도메인을 눌러 콘텐츠를 로드하려고 할 때마다 "안전하지 않음"이라는 메시지가 표시되기 때문에 뭔가 누락된 것이 틀림없다고 생각합니다 sudo certbot --nginx.

가상 호스트에 대한 구성 파일은 다음과 같습니다.

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
}

이것이 중요한지는 모르겠지만... 기본 루트 도메인인 blainelafreniere.io는 완전히 다른 VPS를 가리키고 있습니다. 내 blainelafreniere.io 도메인은 자체 SSL 인증서로 보호되며 현재 하위 도메인(이 경우 lms-api.blainelafreniere.io)에 대해서만 새 SSL 인증서를 생성하려고 합니다.

blainelafreniere.io => 서버 A lms.blainelafreniere.io, lms-api.blainelafreniere.io => 서버 B

하위 도메인도 보호하려면 기본 도메인의 인증서를 사용해야 하나요? 아니면 하위 도메인별로 새 인증서를 생성할 수 있나요?

답변1

와 더불어HTTP-01 챌린지지정된(여러 SAN을 사용하여) 호스트 이름에 대해서만 인증서를 얻을 수 있습니다. 인증서 투명성에 따라다음에 대한 로그blainelafreniere.io에 대한 와일드카드 인증서가 없으므로 *.blainelafreniere.io하위 도메인에 동일한 인증서를 사용할 수도 없습니다. (와일드카드 인증서를 얻는 것은 다음을 통해 가능합니다.DNS-01 챌린지하지만 이 경우에는 필요하지도 않고 최적이지도 않습니다.)

또한 로그는 Let's Encrypt가 두 하위 도메인( lms.apilms )그게 올바른 방법이야.

자동 갱신을 위해서는 http://example.com/.well-known/acme-challenge/Let's Encrypt / Certbot 구성에 지정된 위치(예: 아래 /etc/letsencrypt/renewal/)에 계속 액세스하고 서비스를 제공해야 합니다.

현재 서버가 34.200.239.16HTTPS 요청에 전혀 응답하지 않습니다. 이는 인증서에 문제가 되지 않습니다. Nginx가 포트 443을 수신하지 않거나 일부 방화벽이 이를 차단하고 있습니다.

$ 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

관련 정보