본문 바로가기
보안/Fortigate

NPM 외국 IP 차단 시 자동 renew 방법

by 꾸적꾸적 2026. 1. 21.

 

현재 위 정책을 넣어두어 외국에서 npm 서버로 들어오는 모든 ip는 차단된다.

즉, Let's Encrypt로 자동 갱신하는 방식도 차단된 것.

 

따라서 매번 수동으로 갱신을 해줘야하는데, 이때마다 방화벽을 전부 열어주어야 한다는 단점이 존재한다.

 

따라서 너무 귀찮았고 찾아본 결과,

이를 해결할 방법은 DNS API token 이었다.

 

 

NPM 내부, SSL Certificates 메뉴에 들어서면 위 스크린샷과 같이

새로운 SSL 인증서를 발급할 수 있다.

다만 현재는 맨 처음 스크린샷 처럼 정책으로 외국에서의 인증이 막혀있다.

 

고로 위 스크린샷 처럼 DNS Challenge를 열어 방화벽 단이 아닌,

DNS 공급자 단에서 처리하도록 하는 방식이다.

 

DNS Challenge 는 DNS-01 인증이라고 해서,

웹 접속으로 인증(HTTP-01)을 하는 기존 방식이 아닌,

DNS 레코드로 증명하는 방식을 의미한다.

 

이게 어떻게 되냐면, 원리는 이러하다

HTTP-01 방식

해외 서버(Let's Encrypt 서버) 에서 직접 해당 도메인에 들어간 다음,

" 아, 이 도메인은 접속이 되고 이런 도메인이구나. "

를 인증하는 방식이라면,

 

DNS-01 방식

웹 접속을 하지 않고,

"DNS에 내가 준 값을 적으면 내가 인정해줄게."

라는 방식.

 

즉, 해당 방식을 사용하기 위해선 API를 사용하여 Cloudflare 등의 DNS 공급자에 접근할 권리를 주어야한다.

 

< 계정 관리 - 계정 API 토큰 >

 

< 토큰 생성 클릭 >

 

< API 토큰 템플릿 중 영역 DNS 편집 템플릿 사용 >

 

< 영역 리소스 맨 오른쪽 Select 만 해당 DNS로 변경 >

 

필자는 Cloudfare 를 사용중이므로 해당 API 토큰 발급 진행함.

저렇게 나온 토큰을 아까전 npm 화면으로 돌아와서

 

 

dns_cloudflare_api_token=

뒷부분에 해당 API 토큰값 붙혀넣기

 

이렇게 하면 정상적으로 생성된다.

댓글