使用nektos/act本地运行GitHub Actions时遇SSL证书验证失败问题
解决nektos/act中Ubuntu medium镜像下Python setup的SSL证书验证失败问题
问题根源
NODE_EXTRA_CA_CERTS环境变量只对Node.js相关工具生效,Python的pip并不识别这个变量。Ubuntu medium镜像默认缺少完整的系统CA证书包,而full-latest镜像自带了完整证书,所以在后者中能正常运行。
解决方案
方案1:安装系统CA证书包
直接在actions/setup-python步骤前添加安装命令,补全系统缺失的CA证书:
- name: 安装系统CA证书 run: | sudo apt-get update && sudo apt-get install -y ca-certificates - uses: actions/setup-python@v4 with: python-version: '3.9'
方案2:给Python指定自定义CA证书
如果已经有自己的.crt证书文件,通过以下方式让pip识别:
- 方法A:设置PIP_CERT环境变量
- name: 配置Python证书环境变量 run: echo "PIP_CERT=/path/to/your/certificate.crt" >> $GITHUB_ENV - uses: actions/setup-python@v4 with: python-version: '3.9'
- 方法B:创建pip配置文件
- name: 配置pip证书路径 run: | mkdir -p ~/.config/pip cat > ~/.config/pip/pip.conf << EOF [global] cert = /path/to/your/certificate.crt EOF - uses: actions/setup-python@v4 with: python-version: '3.9'
额外提示
如果是企业内网环境,除了证书问题,还得确认镜像能正常访问Pypi,或者配置内网Pypi镜像源,但当前场景优先解决CA证书配置即可。
内容的提问来源于stack exchange,提问作者akshat garg
相关产品推荐
相关产品推荐

