ETYMOLOGY

Back

학교 네트워크에서 개발 도구를 쓰다 보면, 집에서는 되던 명령이 이상한 오류를 내며 실패한다. 원인은 대부분 같다. 학교망이 HTTPS 통신을 중간에서 검사하면서 자기 인증서로 바꿔 끼우기 때문에, 도구들이 “신뢰할 수 없는 인증서”라고 거부하는 것이다. 겪은 순서대로 정리한다.

Node 기반 도구(npm, firebase-tools 등)#

증상은 SELF_SIGNED_CERT_IN_CHAIN이나 Failed to make request다. 해당 명령 한 번에만 시스템 인증서를 쓰게 하면 된다.

NODE_OPTIONS=--use-system-ca npm install
plaintext

PowerShell에서는 $env:NODE_OPTIONS='--use-system-ca'를 먼저 설정한다. 상시 환경변수로 등록하지 않고 필요할 때만 붙이는 쪽이 안전하다고 판단했다. firebase deploy가 “Assertion failed: resolving hosting target” 같은 모호한 메시지로 실패하는 것도 같은 원인이었다.

Git Bash의 curl#

HTTPS 요청이 상태 코드 000으로 실패한다. 이럴 때는 윈도우 인증서 저장소를 쓰는 PowerShell의 Invoke-WebRequest로 같은 주소를 불러 보면 된다. 사이트가 죽은 건지 검사 때문인지 구분할 수 있다.

Python 라이브러리#

Hugging Face에서 모델을 내려받을 때 같은 문제가 난다. 스크립트 앞부분에서 truststore로 시스템 인증서를 쓰게 한다.

import truststore
truststore.inject_into_ssl()
python

gcloud는 우회가 안 된다#

구글 클라우드 CLI는 자체 파이썬을 쓰는데, 이 파이썬이 프록시 인증서를 거부한다(Missing Authority Key Identifier). 사용자 CA 파일을 지정해도 소용이 없었다. 이 경우는 학교망 밖(집이나 다른 Wi-Fi)에서 실행하거나 웹 콘솔로 하는 수밖에 없었다.

정리#

도구 해결
Node, npm, firebase 해당 명령에만 --use-system-ca
curl(Git Bash) PowerShell Invoke-WebRequest로 대체
Python(Hugging Face 등) truststore.inject_into_ssl()
gcloud 학교망 밖에서 실행

오류 문구가 도구마다 달라서 처음에는 서로 다른 문제로 보인다. “집에서는 되는데 학교에서만 안 된다”면 SSL 검사를 먼저 의심하면 시간을 아낄 수 있다.

학교망에서 개발하다 만난 SSL 검사 오류 모음
https://blog.etymology.me/blog/school-network-ssl-tips
Author ETYMOLOGY
Published at 2026년 11월 9일
Comment seems to stuck. Try to refresh?✨