시놀로지 NAS SSL 인증서 갱신 실패, Let’s Encrypt 오류가 발생하는 이유
시놀로지 NAS를 외부에서 사용하다 보면 어느 순간부터 브라우저에 SSL 인증서가 만료되었다는 경고가 나타나는 경우가 있습니다.
처음 NAS를 설정할 때는 Let’s Encrypt 인증서가 정상적으로 발급됐고, 이후에도 자동으로 갱신될 것이라고 생각하기 쉽습니다.
그런데 인증서 만료일이 가까워졌는데도 자동 갱신이 이루어지지 않거나 DSM에서 인증서를 갱신하려고 하면 오류가 발생합니다.
특히 “Let’s Encrypt에 연결하지 못했습니다.” 또는 “서버에 연결할 수 없습니다.”와 같은 메시지가 표시되면 NAS 자체의 인터넷 연결에 문제가 있다고 생각하기 쉽습니다.
하지만 실제로는 Let’s Encrypt가 NAS의 도메인 소유권을 확인하는 과정에서 외부에서 NAS에 접근하지 못하는 경우가 상당히 중요합니다.
시놀로지 DSM에서 Let’s Encrypt 인증서는 90일 동안 유효하며 만료 전에 자동 갱신할 수 있습니다. Synology 역시 인증서 갱신을 위해 NAS와 라우터에서 포트 80이 열려 있는지 확인하도록 안내하고 있습니다. (Synology)
따라서 인증서 갱신에 실패했다면 단순히 인증서를 삭제하고 다시 발급하기보다 도메인 → DNS → 공유기 → 포트포워딩 → NAS → 방화벽 순서로 연결 상태를 확인하는 것이 좋습니다.
Let’s Encrypt 인증서는 왜 자동으로 갱신될까?
Let’s Encrypt 인증서는 일반적인 장기 인증서와 달리 유효기간이 짧습니다.
현재 Let’s Encrypt에서 발급하는 인증서는 90일 동안 유효하며 DSM은 인증서가 만료되기 전에 자동 갱신할 수 있도록 지원합니다.
여기서 중요한 것은 인증서를 단순히 “연장”하는 것이 아니라는 점입니다.
갱신 과정에서 Let’s Encrypt 서버는 해당 도메인을 실제로 관리하고 있는지 확인하는 도메인 검증 과정을 거칩니다.
가장 일반적인 방법 중 하나가 HTTP-01 방식입니다.
Let’s Encrypt가 특정 주소에 임시 검증 파일을 요청하고 NAS 측에서 올바른 응답을 반환하면 도메인 검증이 완료됩니다. 이 HTTP-01 방식은 80번 포트를 사용합니다.
따라서 NAS가 인터넷에 연결되어 있다고 해서 인증서 갱신까지 정상적으로 이루어지는 것은 아닙니다.
Let’s Encrypt의 검증 서버가 외부에서 NAS까지 접근할 수 있어야 합니다.
포트 80이 닫혀 있으면 인증서 갱신에 실패할 수 있다
시놀로지에서 Let’s Encrypt 인증서 갱신 문제가 발생했을 때 가장 먼저 확인할 부분 중 하나가 80번 포트입니다.
DSM의 인증서 관리 기능을 이용해 Let’s Encrypt 인증서를 발급하거나 갱신하는 경우 외부에서 NAS로 들어오는 HTTP 연결이 필요할 수 있습니다.
Let’s Encrypt의 공식 문서에서도 HTTP-01 검증은 80번 포트에서만 수행되며, 외부에서 들어오는 80번 포트 연결이 차단되면 검증이 실패할 수 있다고 설명합니다.
따라서 공유기에서 80번 포트를 사용하지 않도록 막아 놓았거나 포트포워딩이 삭제된 경우 인증서 자동 갱신에 실패할 수 있습니다.
특히 예전에 인증서를 발급받은 이후 공유기를 교체했거나 보안 설정을 변경했다면 이 부분을 확인해야 합니다.
포트 443이 정상인데도 갱신이 실패할 수 있다
HTTPS를 사용하는 NAS라면 보통 443번 포트를 중요하게 생각합니다.
그래서 443번 포트가 정상적으로 접속되면 SSL 인증서 갱신에도 문제가 없을 것이라고 생각하기 쉽습니다.
하지만 여기서 중요한 차이가 있습니다.
HTTP-01 방식의 도메인 검증은 80번 포트를 사용합니다.
즉, 443 정상 → HTTPS 접속 가능이라고 해서 80 정상 → Let’s Encrypt 검증 가능이라는 의미는 아닙니다.
Let’s Encrypt의 HTTP-01 챌린지는 80번 포트에서 수행되므로 443만 열어 놓고 80번 포트를 차단한 환경에서는 인증서 갱신에 실패할 수 있습니다.
따라서 인증서 문제를 확인할 때는 443번 포트뿐만 아니라 80번 포트도 함께 확인해야 합니다.
공유기의 포트포워딩 설정이 변경됐을 수 있다
NAS에서 인증서를 정상적으로 사용하다가 어느 날부터 자동 갱신에 실패했다면 공유기의 포트포워딩 설정을 확인해 보는 것이 좋습니다.
예를 들어 과거에는 외부 80번 포트 → NAS 80번 포트로 설정되어 있었는데 공유기를 초기화하면서 해당 규칙이 사라졌을 수 있습니다.
또는 NAS의 내부 IP가 변경되면서 포트포워딩 대상이 더 이상 NAS를 가리키지 않을 수도 있습니다.
예를 들어 예전 NAS IP가 192.168.0.20이었다면 포트포워딩도 이 주소를 대상으로 설정되어 있을 수 있습니다.
그런데 현재 NAS가 192.168.0.35를 사용하고 있다면 외부에서 들어온 인증 검증 요청은 엉뚱한 장치로 전달되거나 응답을 받지 못하게 됩니다.
따라서 인증서 갱신에 실패했다면 포트포워딩 대상 IP와 현재 NAS의 내부 IP가 일치하는지 확인해야 합니다.
DDNS나 도메인이 현재 공인 IP를 가리키는지도 확인
Let’s Encrypt는 사용자가 입력한 도메인으로 NAS에 접근해 도메인 검증을 수행합니다.
따라서 도메인이 잘못된 IP를 가리키고 있다면 인증서 발급이나 갱신이 실패할 수 있습니다.
예를 들어 인터넷 회선의 공인 IP가 변경됐는데 DDNS가 새로운 IP로 갱신되지 않았다면 외부에서 도메인으로 접속했을 때 NAS가 아닌 다른 곳으로 연결될 수 있습니다.
이 경우 NAS 내부에서는 인터넷도 정상이고 DDNS 상태도 별다른 오류가 없어 보일 수 있지만, 외부의 Let’s Encrypt 검증 서버에서는 NAS를 찾지 못할 수 있습니다.
따라서 인증서 갱신 문제가 발생하면 도메인 → 현재 공인 IP 연결이 정확한지 확인하는 것이 좋습니다.
공유기가 두 대라면 이중 NAT를 확인
네트워크 구조가 인터넷 → 통신사 공유기 → 개인 공유기 → NAS와 같이 되어 있다면 인증서 갱신 문제가 발생할 가능성을 확인해야 합니다.
개인 공유기에서 80번 포트의 포트포워딩을 설정했더라도 상위에 있는 통신사 공유기가 외부 요청을 차단하고 있다면 Let’s Encrypt 검증 서버가 NAS까지 도달하지 못할 수 있습니다.
이른바 이중 NAT(Double NAT) 환경입니다.
이 경우 개인 공유기에서 아무리 포트포워딩을 정확하게 설정해도 외부에서 들어온 요청이 첫 번째 공유기에서 막힐 수 있습니다.
따라서 NAS의 인증서 갱신이 갑자기 실패한다면 공유기가 한 대인지, 상위에 다른 NAT 장비가 존재하는지도 확인하는 것이 좋습니다.
통신사가 80번 포트를 차단하는 경우도 있다
가정용 인터넷 환경에서는 사용자가 직접 설정하지 않았더라도 80번 포트가 외부에서 접근되지 않는 경우가 있습니다.
Let’s Encrypt 역시 일부 인터넷 서비스 제공업체가 80번 포트를 차단할 수 있다고 설명하고 있습니다.
따라서 공유기에서 80번 포트를 열어 놓았는데도 외부에서 접근되지 않는다면 통신사 측에서 해당 포트를 제한하고 있는지 확인할 필요가 있습니다.
이 경우 공유기 설정만 계속 변경해서는 문제가 해결되지 않습니다.
Let’s Encrypt는 HTTP-01 외에도 DNS-01, TLS-ALPN-01 같은 다른 검증 방식을 제공하지만, 각각 요구하는 네트워크와 DNS 조건이 다릅니다.
NAS 방화벽이 80번 포트를 차단할 수도 있다
공유기에서 포트포워딩을 정상적으로 설정했는데도 인증서 갱신이 실패한다면 NAS의 방화벽도 확인해야 합니다.
시놀로지 DSM에서는 방화벽을 이용해 특정 포트나 IP의 접근을 제한할 수 있습니다.
예를 들어 공유기에서 80번 포트를 NAS로 전달하고 있어도 NAS 방화벽에서 해당 연결을 차단하고 있다면 Let’s Encrypt 검증 요청이 정상적으로 처리되지 않을 수 있습니다.
특히 최근에 DSM 방화벽 규칙을 추가하거나 국가별 IP 차단, 특정 포트 차단 등의 보안 설정을 변경했다면 인증서 갱신 시점과 비교해 볼 필요가 있습니다.
다만 보안을 위해 방화벽을 무조건 끄는 것은 권장하지 않습니다.
문제의 원인을 확인한 뒤 필요한 포트와 연결만 허용하는 방식으로 조정하는 것이 좋습니다.
역방향 프록시가 인증 검증 요청을 가로챌 수도 있다
NAS에서 여러 웹 서비스를 운영하면서 역방향 프록시를 사용하고 있다면 이 부분도 확인해야 합니다.
외부에서 특정 도메인으로 접속하면 역방향 프록시가 요청을 다른 서비스나 Docker 컨테이너로 전달하도록 구성할 수 있습니다.
그런데 Let’s Encrypt가 인증을 위해 요청하는 /.well-known/acme-challenge/ 경로까지 역방향 프록시 규칙이 가로채면 검증 과정에 문제가 발생할 수 있습니다.
실제로 Synology Community에서도 서브도메인에 대한 Let’s Encrypt 인증 과정에서 역방향 프록시 규칙이 ACME 챌린지 요청에 영향을 주는 사례가 보고되어 있습니다.
따라서 인증서 갱신 문제가 발생했을 때 최근 역방향 프록시 규칙을 변경했다면 이 부분을 함께 확인하는 것이 좋습니다.
도메인 이름이 인증서 설정과 일치하는지 확인
인증서를 발급받을 때 입력한 도메인과 현재 외부에서 사용하는 도메인이 달라진 경우에도 문제가 발생할 수 있습니다.
예를 들어 과거에는 nas.example.com을 사용했는데 이후 storage.example.com으로 변경했다면 기존 인증서의 도메인과 현재 접속 주소가 일치하지 않을 수 있습니다.
또한 인증서에 포함된 추가 도메인이나 서브도메인을 변경했다면 각 도메인에 대한 검증도 정상적으로 이루어져야 합니다.
따라서 인증서 갱신 실패가 발생하면 단순히 메인 도메인만 확인하지 말고 인증서에 등록된 모든 도메인과 DNS 설정을 함께 확인하는 것이 좋습니다.
DNS 설정이 잘못된 경우
Let’s Encrypt가 특정 도메인으로 접속했는데 예상한 NAS가 아닌 다른 서버가 응답한다면 인증서 검증은 실패할 수 있습니다.
특히 A 레코드나 CNAME을 변경한 뒤 DNS 전파가 완료되지 않았거나, 서브도메인의 DNS 설정이 잘못된 경우 문제가 발생할 수 있습니다.
예를 들어 nas.example.com은 NAS의 공인 IP를 가리키지만 drive.example.com 은 예전 서버의 IP를 가리키고 있다면 drive.example.com에 대한 인증서 발급이나 갱신만 실패할 수 있습니다.
따라서 여러 서브도메인을 사용하는 NAS 환경에서는 각 도메인이 어느 IP를 가리키고 있는지 개별적으로 확인해야 합니다.
인증서가 만료된 뒤에는 더 복잡해질 수 있다
Let’s Encrypt 인증서는 90일이라는 비교적 짧은 기간 동안 유효하기 때문에 자동 갱신이 정상적으로 작동하는 것이 중요합니다.
인증서가 만료된 후에는 브라우저에서 보안 경고가 나타나고 일부 서비스의 HTTPS 연결이 정상적으로 이루어지지 않을 수 있습니다.
따라서 인증서 만료를 확인했다면 무작정 여러 번 발급을 시도하기보다 먼저 도메인 검증이 가능한 상태인지 확인하는 것이 좋습니다.
특히 HTTP-01 검증을 반복적으로 실패시키면 Let’s Encrypt의 관련 제한에 영향을 받을 수 있습니다. Let’s Encrypt는 검증 실패가 네트워크나 방화벽 설정 때문에 발생하는 경우가 많다고 안내하고 있습니다.
문제를 해결하지 않은 상태에서 계속 발급을 반복하기보다 원인을 먼저 확인하는 것이 안전합니다.
인증서 갱신이 실패할 때 확인하는 순서
이 문제는 다음과 같은 순서로 확인하면 원인을 좁히기 쉽습니다.
먼저 인증서의 만료일과 현재 등록된 도메인을 확인합니다.
그다음 해당 도메인이 현재 공인 IP를 정확하게 가리키는지 확인합니다.
이후 공유기의 포트포워딩에서 외부 80번 포트가 NAS로 연결되는지 확인합니다.
NAS의 현재 내부 IP가 포트포워딩 대상 IP와 동일한지도 확인합니다.
공유기가 두 대라면 이중 NAT 여부를 확인합니다.
그다음 NAS와 공유기의 방화벽에서 외부 80번 포트 연결이 차단되고 있지 않은지 확인합니다.
역방향 프록시나 Web Station을 사용한다면 ACME 검증 경로가 다른 서비스로 전달되고 있지 않은지도 확인합니다.
마지막으로 통신사에서 80번 포트를 차단하는 환경인지 확인합니다.
이 순서대로 확인하면 단순히 DSM에서 인증서를 계속 삭제하고 다시 발급하는 것보다 훨씬 빠르게 원인을 찾을 수 있습니다.
인증서 갱신을 위해 포트를 무작정 많이 열 필요는 없다
Let’s Encrypt 인증서 문제를 해결한다고 해서 공유기의 여러 포트를 전부 개방할 필요는 없습니다.
오히려 사용하지 않는 포트를 외부에 공개하면 NAS의 공격 표면이 불필요하게 넓어질 수 있습니다.
HTTP-01 검증을 사용하는 환경이라면 핵심은 외부의 Let’s Encrypt 검증 서버가 필요한 포트로 NAS에 접근할 수 있는지입니다.
Let’s Encrypt 공식 문서에서도 HTTP-01 검증에는 외부에서 들어오는 80번 포트가 필요하다고 안내하고 있습니다.
따라서 문제를 해결한 뒤에는 사용하지 않는 포트를 닫고, 필요한 서비스만 외부에서 접근할 수 있도록 구성하는 것이 좋습니다.
마무리
시놀로지 NAS에서 Let’s Encrypt SSL 인증서 갱신에 실패했다고 해서 인증서 자체가 문제가 있다고 단정할 필요는 없습니다.
인증서 갱신 과정에서 중요한 것은 Let’s Encrypt 검증 서버가 사용자의 도메인을 통해 NAS에 정상적으로 접근할 수 있는지입니다.
특히 HTTP-01 방식에서는 80번 포트가 핵심이므로 공유기의 포트포워딩과 NAS 방화벽, 통신사 네트워크 환경을 함께 확인해야 합니다.
따라서 인증서 도메인 확인 → DNS 확인 → 공인 IP 확인 → 공유기 포트포워딩 → NAS 내부 IP → 포트 80 접근 여부 → NAS 방화벽 → 역방향 프록시 → 이중 NAT·통신사 환경 순서로 점검하는 것이 좋습니다.
특히 인터넷은 정상이고 DDNS도 정상인데 Let’s Encrypt 갱신만 실패한다면 포트 80이 외부에서 실제 NAS까지 도달하는지 먼저 확인하는 것이 중요합니다.
인증서 갱신을 확인하기 전에 사용 중인 DDNS 주소가 현재 NAS의 외부 접속 환경과 정상적으로 연결되는지도 확인해야 합니다.
또한 최근에 공유기나 NAS의 네트워크 설정, 방화벽, 역방향 프록시를 변경했다면 그 변경 사항부터 확인하는 것이 효율적입니다.
SSL 인증서는 단순히 브라우저에 자물쇠를 표시하는 기능만을 의미하지 않습니다. 외부에서 NAS와 웹 서비스를 안전하게 사용하기 위한 중요한 요소이기 때문에 만료 직전에 문제가 생기도록 방치하기보다 자동 갱신이 정상적으로 작동하는 환경을 미리 확인해 두는 것이 좋습니다.
IT왕세자
댓글 0
첫 댓글을 남겨보세요.