---
title: "Mac의 npm, Git, curl에서 회사 프록시 인증서 오류 · Kilobat 가이드"
url: "https://kilobat.app/ko/guides/corporate-proxy-certificates"
description: "인증서 검사를 끄지 않고 회사 프록시 뒤에서 npm, Node, Git, curl 및 Homebrew의 “unable to get local issuer certificate” 오류를 해결하세요."
---

VPN, 프록시 및 필터

# 회사 프록시 인증서로 인해 Mac의 터미널 도구가 작동하지 않음

일부 회사 네트워크는 HTTPS 트래픽을 검사합니다. 이때 프록시가 회사 루트 인증서로 트래픽에 서명하므로 이를 신뢰하지 않는 도구는 중단됩니다.

적용 대상: 현재 지원되는 모든 macOS 버전. Node.js `NODE_USE_SYSTEM_CA`에는 Node.js 22.19, 24.6 이상이 필요합니다. · 확인일: 2026년 10월 29일

## 증상

- 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 키체인을 사용합니다. 많은 명령줄 도구는 자체 신뢰 인증서 목록을 사용합니다.
- **누락된 프록시 설정.** 터미널의 도구는 항상 시스템 프록시를 사용하지 않습니다. 프록시 변수나 자체 설정이 필요합니다.

## 확인 방법

1. 서버가 보내는 인증서 체인을 표시합니다. 맨 위 인증서의 발급자를 확인하세요.

   ```
   openssl s_client -connect registry.npmjs.org:443 -servername registry.npmjs.org -showcerts </dev/null
   ```
2. curl로 TLS 핸드셰이크를 표시합니다.

   ```
   curl -v https://registry.npmjs.org/ -o /dev/null
   ```
3. 키체인 접근에서 회사 루트 인증서를 찾으세요. 시스템 키체인에서 회사 이름을 검색합니다.
4. 셸의 프록시 변수를 표시합니다.

   ```
   env | grep -i proxy
   ```

## 해결 방법

1. IT 팀에서 회사 루트 인증서를 PEM 파일로 받으세요. 출처를 알 수 없는 인증서를 신뢰하지 마세요.
2. Node.js 도구의 경우 `NODE_EXTRA_CA_CERTS`에 파일을 지정하세요. 설정한 뒤 도구를 다시 시작하세요.

   ```
   export NODE_EXTRA_CA_CERTS=~/certs/company-root.pem
   ```
3. Node.js 22.19, 24.6 이상에서는 키체인이 신뢰하는 인증서를 사용할 수 있습니다.

   ```
   export NODE_USE_SYSTEM_CA=1
   ```
4. npm에 인증서 파일을 설정하세요.

   ```
   npm config set cafile ~/certs/company-root.pem
   ```
5. Git의 인증서 파일을 설정하세요.

   ```
   git config --global http.sslCAInfo ~/certs/company-root.pem
   ```
6. curl에는 `--cacert`로 파일을 지정하세요.

   ```
   curl --cacert ~/certs/company-root.pem https://example.com
   ```
7. IT 팀이 회사 프록시를 사용한다면 터미널 도구에 설정하세요.

   ```
   export https_proxy=http://proxy.example.com:8080
   ```
8. `strict-ssl` 또는 `http.sslVerify` 같은 인증서 검사를 끄지 마세요. 연결이 안전하지 않게 됩니다.

## Kilobat 사용

1. Kilobat 연결 확인은 TLS 실패를 별도의 계층으로 보고합니다. 직접 경로가 작동하지 않는 곳에서 시스템 프록시가 작동하는지도 알려줍니다.

   ```
   kilobat why https://registry.npmjs.org/
   ```
2. 해당 앱 환경의 프록시 변수를 사용하려면 `--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](https://nodejs.org/api/cli.html)
- [npm 문서: config(cafile, proxy, https-proxy, strict-ssl)](https://docs.npmjs.com/cli/v11/using-npm/config)
- git-config(1), http.sslCAInfo 및 http.proxy, macOS 27.2와 함께 설치된 매뉴얼 페이지(Git 2.56)
- [Apple 지원: 키체인 접근에서 인증서의 신뢰 설정 변경하기](https://support.apple.com/guide/keychain-access/kyca11871)
- curl(1), macOS 27.2에 설치된 매뉴얼 페이지

2026년 10월 29일 확인했습니다.

## 관련 가이드

- [Mac에서 Homebrew 또는 npm 다운로드 실패](https://kilobat.app/ko/guides/homebrew-npm-download-fails): Homebrew는 curl과 Git으로 다운로드합니다.
- [프록시 설정으로 인해 Mac에서 앱이 연결되지 않습니다](https://kilobat.app/ko/guides/proxy-settings-breaking-apps): 프록시 설정은 다른 서버를 통해 트래픽을 전송합니다.
- [Mac의 “이 연결은 비공개로 설정되어 있지 않습니다” 및 인증서 경고](https://kilobat.app/ko/guides/connection-not-private-mac): Safari는 웹사이트의 신원을 확인할 수 없으면 인증서 경고를 표시합니다.
- [Mac에서 SSH와 Git 연결 시간 초과](https://kilobat.app/ko/guides/ssh-git-timeouts): SSH와 Git에는 서버에 정상적으로 연결되는 TCP 연결이 필요합니다.
