nginx(certbot)를 사용하여 도메인에 Let's encrypt SSL 인증서를 추가할 수 없습니다.

nginx(certbot)를 사용하여 도메인에 Let's encrypt SSL 인증서를 추가할 수 없습니다.

nginx 및 certbot을 사용하여 내 도메인에 Let's Encrypt SSL 인증서를 적용하는 데 문제가 있습니다. 내 (Nuxtjs) 웹사이트는 Ubuntu 18.04가 설치된 VPS에서 실행되고 있습니다. mydomain.nl 및 stage.mydomain.nl에 인증서를 추가하고 싶지만 추가할 수 없습니다. 나는 이것에 익숙하지 않지만 이전에는 아무런 문제 없이 성공적으로 이 작업을 수행했습니다.

내 말이 맞다면 certbot은 도메인을 확인하기 위해 실행될 때 파일을 배치하려고 시도합니다 sudo certbot --nginx. 하지만 다음과 같은 오류가 발생합니다.

Failed authorization procedure. mydomain.nl (http-01): urn:ietf:params:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://mydomain.nl/.well-known/acme-challenge/PBjT0nQy7m5_bE42I1jr5mMaYxLMma4ONP9FAUgCD3c [2a02:2268:ffff:ffff::4]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p"
IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: mydomain.nl
   Type:   unauthorized
   Detail: Invalid response from
   http://mydomain.nl/.well-known/acme-challenge/PBjT0nQy7m5_bE42I1jr5mMaYxLMma4ONP9FAUgCD3c
   [2a02:2268:ffff:ffff::4]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD
   HTML 2.0//EN\">\n<html><head>\n<title>404 Not
   Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p"

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address.

또한 구성에 이 블록을 추가해 보았습니다.

location ~ /.well-know/acme-challenge {
    allow all;
    root /var/www/mydomain.nl/html;
}

하지만 성공하지 못함...

내 도메인에서 웹사이트에 접속할 수 있으므로 DNS가 정확해야 합니다.

요청한 대로 실행하면 ls -ld /var/www/mydomain.nl/html다음과 같은 결과가 출력됩니다.

drwxrwxr-x 10 kim kim 4096 May 13 20:38 /var/www/mydomain.nl/html

Nginx 사용자는 누구입니까 www-data?

누구든지 여기에서 올바른 방향을 알려줄 수 있습니까? 어떤 도움이라도 대단히 감사하겠습니다!

미리 감사드립니다!

답변1

이는 Certbot이 웹사이트 도메인이 온라인인지 확인하기 때문에 발생합니다. 404 코드가 포함된 http 응답을 받으면 해당 코드가 존재하는지 확인할 수 없으며 인증서가 생성되지 않습니다.

독립형 모드를 사용해 볼 수 있습니다.

certbot certonly --standalone --preferred-challenges http -d example.com --webroot-path /path/to/root

답변2

내 도메인 이름 등록 기관이 내 도메인 이름에 대해 미리 구성된 AAAA 레코드를 발견했습니다. 이것이 작동하려면 이 기록을 삭제해야 합니다. 당신의 생각에 감사드립니다!

관련 정보