npm · npm
오류 문구
npm ERR! request to https://registry.npmjs.org/express failed, reason: unable to verify the first certificate
무슨 뜻인가
TLS 연결이 실패했다는 뜻입니다 — 서버가 내놓은 인증서 사슬이 node가 믿지 않는 기관의 서명으로 이어져 있습니다. 회사 네트워크에서 프록시가 트래픽을 열어 보고 자기 인증서로 다시 서명하는 경우가 압도적으로 많고, 드물게는 서버가 중간 인증서를 함께 보내지 않은 경우입니다. npm config set cafile로 회사의 루트 인증서를 npm에게 알려 주는 것이 올바른 해결입니다. strict-ssl false로도 이 줄은 사라지지만 그것은 인증서 검사를 아예 끄는 것이어서, 경로에 있는 누구든 바뀐 패키지를 내려 줄 수 있게 됩니다 — 쓰지 않습니다.
고치는 명령
npm config set cafile /etc/ssl/corp-ca.pem- 내는 도구
- npm
- npm
- 20
npm ERR!로 시작하는 줄은 대개 마지막 여섯 줄이 아니라 첫 code XXXX 한 줄에 원인이 적혀 있고, 오류가 내 코드가 아니라 의존성 나무나 네이티브 빌드에서 온 것이면 node_modules를 지우고 다시 설치하는 것으로 절반이 풀립니다.
오류 문구를 읽는 법
- 첫 줄부터 읽습니다. 아래로 갈수록 도구 내부 이야기이고, 정작 원인은 맨 위에 적혀 있습니다.
- 파일 이름과 줄 번호가 있으면 거기가 시작점입니다 — 스택의 가장 위가 아니라, 내가 쓴 파일이 나오는 가장 위 줄입니다.
- 문구를 그대로 검색합니다. 다만 내 경로와 변수 이름은 지웁니다 — 그 부분이 검색을 방해합니다.
- 같은 문구가 도구 판마다 다르게 나옵니다. 검색 결과가 안 맞으면 판 번호를 함께 넣어 봅니다.
- 고치는 명령을 붙여 넣기 전에 그 명령이 무엇을 버리는지 확인합니다. 되돌릴 수 없는 것이 섞여 있습니다.
자주 묻는 질문
Q. npm ERR! request to https://registry.npmjs.org/express failed, reason: unable to verify the first certificate 는 무슨 뜻인가요?
TLS 연결이 실패했다는 뜻입니다 — 서버가 내놓은 인증서 사슬이 node가 믿지 않는 기관의 서명으로 이어져 있습니다. 회사 네트워크에서 프록시가 트래픽을 열어 보고 자기 인증서로 다시 서명하는 경우가 압도적으로 많고, 드물게는 서버가 중간 인증서를 함께 보내지 않은 경우입니다. npm config set cafile로 회사의 루트 인증서를 npm에게 알려 주는 것이 올바른 해결입니다. strict-ssl false로도 이 줄은 사라지지만 그것은 인증서 검사를 아예 끄는 것이어서, 경로에 있는 누구든 바뀐 패키지를 내려 줄 수 있게 됩니다 — 쓰지 않습니다.
Q. 어떻게 고치나요?
npm config set cafile /etc/ssl/corp-ca.pem — 실행 전에 위의 설명에서 이 명령이 무엇을 버리는지 확인하세요.
Q. 어느 도구가 내는 오류인가요?
npm입니다. npm 갈래에 있고, 문구는 13낱말입니다.