Extra Form
PHP PHP 7.4
CMS Rhymix 2.x

KoreaVlog(koreanvlog.com)님을 통해 오라클 무료 클라우드로 블로그를 운영하고 있습니다.

 

다름이 아니라, 곧 letsencrypt SSL 유효기간이 만료되는데요. 따로 자동 갱신 설정을 하진 않았고, 수동으로 해주고 있습니다. 원래는 [sudo letsencrypt renew] 으로 갱신이 잘 됐는데 아래와 같은 오류를 발생하며 갱신이 안됩니다.

 

 

Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/domain.kr.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert is due for renewal, auto-renewing...
Plugins selected: Authenticator webroot, Installer None
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for domain.kr
http-01 challenge for www.domain.kr
Waiting for verification...
Cleaning up challenges
Attempting to renew cert (domain.kr) from /etc/letsencrypt/renewal/domain.kr.conf produced an unexpected error: Failed authorization procedure.domain.kr (http-01): urn:ietf:params:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from https://domain.kr/.well-known/acme-challenge/uqJEe8XQkprKuUsj42qQiUHTWxDrLJ8kilZkahW-r4E [132.226.XXX.1]: "<!DOCTYPE html>\n<html lang=\"ko\">\n<head>\n<!-- META -->\n<meta charset=\"utf-8\">\n<meta name=\"generator\" content=\"Rhymix\">\n<meta name", www.domain.kr (http-01): urn:ietf:params:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from https://domain.kr/.well-known/acme-challenge/o4lRnSVIKGQ86uNFsHERQ6Y-wxv6_m8Wt1I9wQAqiU0 [132.226.XXX.1]: "<!DOCTYPE html>\n<html lang=\"ko\">\n<head>\n<!-- META -->\n<meta charset=\"utf-8\">\n<meta name=\"generator\" content=\"Rhymix\">\n<meta name". Skipping.
All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/live/domain.kr/fullchain.pem (failure)

 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/live/domain.kr/fullchain.pem (failure)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1 renew failure(s), 0 parse failure(s)

 

IMPORTANT NOTES:
 - The following errors were reported by the server:

 

   Domain: domain.kr
   Type:   unauthorized
   Detail: Invalid response from
   https://domain.kr/.well-known/acme-challenge/uqJEe8XQkprKuUsj42qQiUHTWxDrLJ8kilZkahW-r4E
   [132.226.XXX.1]: "<!DOCTYPE html>\n<html lang=\"ko\">\n<head>\n<!--
   META -->\n<meta charset=\"utf-8\">\n<meta name=\"generator\"
   content=\"Rhymix\">\n<meta name"

 

   Domain: www.domain.kr
   Type:   unauthorized
   Detail: Invalid response from
   https://domain.kr/.well-known/acme-challenge/o4lRnSVIKGQ86uNFsHERQ6Y-wxv6_m8Wt1I9wQAqiU0
   [132.226.XXX.1]: "<!DOCTYPE html>\n<html lang=\"ko\">\n<head>\n<!--
   META -->\n<meta charset=\"utf-8\">\n<meta name=\"generator\"
   content=\"Rhymix\">\n<meta name"

 

   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.

 

 

3달 전에도 수동으로 갱신해주었는데, 이번에 갑자기 안돼서 당황스럽습니다.. 단순 블로그 운영이기에 3달 전과 비교해 따로 건든 것은 없습니다.

 

일단 도메인 DNS설정과 IP주소, 오라클 클라우드 설정도 다시 확인해봤고, XE타운이나 구글에 검색해봐도 딱히 해결책을 찾지 못했습니다.. 블로그를 통해 아무 지식없이 따라서 만들다 보니 어려움이 많네요..ㅠ

 

도움주시면 정말 감사하겠습니다!

  • profile
    1. nginx 가 실행되고 잇는지 확인해보세요.
    2. 갱신하고자 하는 도메인의 80포트로 접속시 정상접속이 잘이루어지고 있는지 확인해보세요.
    3. 갱신하고자 하는 도메인의 80포트로 접속히 433(ssl https 프로토콜) 포트로 301 리디렉트 시켜주고 있는지 확인해보세요.
  • profile ?
    답변 감사합니다! 확인해보니 정상 작동하는 것 같습니다..!
  • profile
    1. http 인증은 말 그대로 http 프로토콜을 사용해야 하는데 https로 접속되고 있는것 같습니다. http->https 리다이렉트를 설정해 두셨다면 .well-known 폴더는 예외로 두셔야 합니다.
    2. 그와 별개로 .well-known 폴더 접속시 라이믹스가 대신 뜨고 있습니다. 라이믹스에서 제공하는 짧은주소 규칙 사용시 파일이 없는 경우에만 라이믹스에서 응답하므로 설정 문제가 아니라면 웹루트를 잘못 찾은 경우일수 있습니다(라이믹스는 /var/www/html/rhymix 에 설치했으나 웹루트는 /var/www/html 로 인식되는 경우 등)
  • profile ?
    혹시 해당 부분을 어디서 확인해야하는지 알 수 있을까요..?ㅠㅠ 따로 건드릴줄 모르기 때문에 그동안 바뀐 부분이 없었을텐데 이상하네요...
  • ? profile

    nginx를 쓴다면 예를들면 80포트 설정을 이렇게 하시면 됩니다 (멀티 도메인 운용을 위해 letsencrypt.conf로 분리한 것이며, 도메인 하나만 운용하신다면 보라색 내용을 server { } 에 직접 넣으셔도 됩니다).

     

    server {
        listen 80;

        server_name mydomain.com www.mydomain.com;

        access_log /var/log/nginx/access_80.log combined;
        include /etc/nginx/snippets/letsencrypt.conf;

        location / {
            return 301 https://mydomain.com$request_uri;
            expires epoch;
        }
    }

    이렇게 하고 /etc/nginx/snippets/letsencrypt.conf 내용은,

     

    location ^~ /.well-known/acme-challenge/ {
        default_type "text/plain";
        root
    /var/www/letsencrypt;
    }

     

    보통 /var/www/letsencrypt 처름 쓰는데, 예를들면, /var/www/letsencrypt/.well-known/acme-challenge/ 가 존재해야 하고(없으면 만들어 줌), .../letsencrypt 및 그 아래 퍼미션은 755, owner는 root:root로 되어 있어야 합니다. 

     

  • profile ?
    헉 include /etc/nginx/snippets/letsencrypt.conf; 이 부분을 넣으니 바로 해결됐습니다...! 정말 감사합니다!!ㅠㅠ