UNABLE_TO_GET_ISSUER_CERT_LOCALLY

npm install 时报错 UNABLE_TO_GET_ISSUER_CERT_LOCALLY

使用 openssl s_client -brief -connect www.baidu.com:443 验证确实

openssl 使用的是 brew 安装的,brew 会自动创建软链接,但是有时候会出现软链接失效的情况,导致无法验证证书

通过 brew doctor 可以看到提示

1
2
Warning: Broken symlinks were found. Remove them with `brew cleanup`:
/opt/homebrew/etc/openssl@3/cert.pem

cert.pem 指向的是 ca-certificates 包中的证书,但是 ca-certificates 包也不完整,因为某种原因 cert.pem 文件丢失了

尝试重新安装 openssl 和 ca-certificates, 但是 reinstall 不行,需要 reinstall --force

brew doctor 验证 Your system is ready to brew.

再次使用 openssl s_client -brief -connect www.baidu.com:443 验证正常

npm install 也正常了