VPN, 프록시 및 필터
회사 프록시 인증서로 인해 Mac의 터미널 도구가 작동하지 않음
일부 회사 네트워크는 HTTPS 트래픽을 검사합니다. 이때 프록시가 회사 루트 인증서로 트래픽에 서명하므로 이를 신뢰하지 않는 도구는 중단됩니다.
증상
- npm 또는 Node에 “self-signed certificate in certificate chain” 또는 “unable to get local issuer certificate”가 표시됩니다.
- Git에서 HTTPS 원격 저장소에 대해 “SSL certificate problem”이 표시됩니다.
- Safari에서는 사이트가 열리지만 curl 또는 Python에서는 열리지 않습니다.
- 오류가 회사 네트워크 또는 VPN에서만 발생합니다.
가능한 원인
- TLS 검사. 프록시가 사이트 인증서를 회사 루트 인증서로 서명한 인증서로 대체합니다.
- 별도의 신뢰 저장소. Safari는 macOS 키체인을 사용합니다. 많은 명령줄 도구는 자체 신뢰 인증서 목록을 사용합니다.
- 누락된 프록시 설정. 터미널의 도구는 항상 시스템 프록시를 사용하지 않습니다. 프록시 변수나 자체 설정이 필요합니다.
확인 방법
서버가 보내는 인증서 체인을 표시합니다. 맨 위 인증서의 발급자를 확인하세요.
openssl s_client -connect registry.npmjs.org:443 -servername registry.npmjs.org -showcerts </dev/nullcurl로 TLS 핸드셰이크를 표시합니다.
curl -v https://registry.npmjs.org/ -o /dev/null키체인 접근에서 회사 루트 인증서를 찾으세요. 시스템 키체인에서 회사 이름을 검색합니다.
셸의 프록시 변수를 표시합니다.
env | grep -i proxy
해결 방법
IT 팀에서 회사 루트 인증서를 PEM 파일로 받으세요. 출처를 알 수 없는 인증서를 신뢰하지 마세요.
Node.js 도구의 경우
NODE_EXTRA_CA_CERTS에 파일을 지정하세요. 설정한 뒤 도구를 다시 시작하세요.export NODE_EXTRA_CA_CERTS=~/certs/company-root.pemNode.js 22.19, 24.6 이상에서는 키체인이 신뢰하는 인증서를 사용할 수 있습니다.
export NODE_USE_SYSTEM_CA=1npm에 인증서 파일을 설정하세요.
npm config set cafile ~/certs/company-root.pemGit의 인증서 파일을 설정하세요.
git config --global http.sslCAInfo ~/certs/company-root.pemcurl에는
--cacert로 파일을 지정하세요.curl --cacert ~/certs/company-root.pem https://example.comIT 팀이 회사 프록시를 사용한다면 터미널 도구에 설정하세요.
export https_proxy=http://proxy.example.com:8080strict-ssl또는http.sslVerify같은 인증서 검사를 끄지 마세요. 연결이 안전하지 않게 됩니다.
Kilobat 사용
Kilobat 연결 확인은 TLS 실패를 별도의 계층으로 보고합니다. 직접 경로가 작동하지 않는 곳에서 시스템 프록시가 작동하는지도 알려줍니다.
kilobat why https://registry.npmjs.org/해당 앱 환경의 프록시 변수를 사용하려면
--app을(를) 추가하세요.kilobat why https://registry.npmjs.org/ --app process:node
질문
npm은 실패하지만 Safari는 작동하는 이유는 무엇인가요?
Safari는 macOS 키체인의 인증서를 신뢰합니다. npm은 회사 인증서를 추가하지 않으면 Node.js에 포함된 인증서를 사용합니다.
strict-ssl을 false로 설정해도 안전한가요?
아니요. 레지스트리에 대한 모든 인증서 검사를 중단합니다. 대신 회사 루트 인증서를 추가하세요.
출처
- Node.js: 명령줄 API, NODE_EXTRA_CA_CERTS 및 --use-system-ca
- npm 문서: config(cafile, proxy, https-proxy, strict-ssl)
- git-config(1), http.sslCAInfo 및 http.proxy, macOS 27.2와 함께 설치된 매뉴얼 페이지(Git 2.56)
- Apple 지원: 키체인 접근에서 인증서의 신뢰 설정 변경하기
- curl(1), macOS 27.2에 설치된 매뉴얼 페이지
2026년 10월 29일 확인했습니다.