Mac端安装Emscripten执行./emsdk install latest报SSL证书验证失败
故障根因
Mac平台通过官方安装包部署的Python默认不会自动加载系统SSL根证书库,Python进程发起HTTPS请求时无法校验服务端证书合法性,就会抛出CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate错误,和Emscripten本身逻辑、网络连通性没有关系。
修复方案
按以下顺序尝试,第一种方法就能解决90%以上的同类问题:
- 运行Python自带的证书安装脚本
官方Python安装包会自带一个根证书配置脚本,直接在终端执行对应版本的脚本即可完成证书配置。默认安装路径下的执行命令如下,注意把3.x替换为你本地实际安装的Python版本号(比如3.10、3.11):
执行后会自动弹出终端窗口跑安装流程,等窗口自动关闭后,回到emsdk目录重新执行open "/Applications/Python 3.x/Install Certificates.command"./emsdk install latest即可。 - 手动配置certifi证书路径
如果找不到上述自带脚本,先给当前Python环境升级安装certifi包:
安装完成后执行命令查询certifi自带的根证书文件路径:pip3 install --upgrade certifi
拿到路径后,在执行安装命令前临时指定SSL证书环境变量即可:python3 -c "import certifi; print(certifi.where())"export SSL_CERT_FILE=上一步输出的证书文件全路径 ./emsdk install latest - 临时关闭SSL校验(仅本地测试用,不推荐长期开启)
若前两种方法都不生效,可以临时关闭Python的SSL校验逻辑完成安装,安装结束后记得清除环境变量避免安全隐患:export PYTHONHTTPSVERIFY=0 ./emsdk install latest unset PYTHONHTTPSVERIFY
安装后验证
依赖安装完成后,依次执行以下命令激活环境、验证安装结果:
./emsdk activate latest source ./emsdk_env.sh emcc -v
终端正常输出Emscripten版本信息即代表安装配置成功。
内容的提问来源于stack exchange,提问作者Floris Kruger
相关产品推荐
相关产品推荐

