You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitLab CI/CD中配置PEM文件并解决证书链错误

解决GitLab流水线「self-signed certificate in certificate chain」错误并传入.pem证书的方案

步骤1:将.pem证书存入GitLab项目CI/CD变量

进入项目的「设置」→「CI/CD」→「变量」面板,点击「添加变量」:

  • 变量名设为CUSTOM_CERT(可自定义,后续yml中需对应)
  • 变量值直接粘贴.pem证书的完整内容
  • 类型选择「File」(GitLab会自动将内容生成临时文件,变量值将指向该文件路径)
  • 按需勾选「保护变量」或「掩码变量」(若证书包含敏感信息)

步骤2:在gitlab-ci.yml中调用证书并配置信任

根据你的Runner环境(Linux/Windows),选择对应的配置方式:

Linux容器/虚拟机Runner示例

stages:
  - integration_test

run_integration_tests:
  stage: integration_test
  image: 你的测试镜像:版本
  before_script:
    # 将临时证书文件复制到系统信任证书目录
    - cp "$CUSTOM_CERT" /usr/local/share/ca-certificates/custom-root-cert.pem
    # 更新系统证书缓存,让系统信任该证书
    - update-ca-certificates
  script:
    # 执行你的集成测试命令,比如:
    - npm run test:integration
    # 或者如果测试工具支持直接指定证书,也可以这样(以curl为例):
    # - curl --cacert "$CUSTOM_CERT" https://第三方目标URL

Windows Runner示例

stages:
  - integration_test

run_integration_tests:
  stage: integration_test
  tags:
    - windows
  before_script:
    # 将证书导入系统信任存储
    - Import-Certificate -FilePath "$CUSTOM_CERT" -CertStoreLocation Cert:\LocalMachine\Root
  script:
    # 执行Windows环境下的集成测试命令
    - dotnet test YourIntegrationTests.csproj

关键注意事项

  • 必须将变量类型设为「File」,而非默认的「Variable」,否则变量值会是纯文本内容,无法直接作为证书文件路径使用
  • 若测试框架/工具支持单独指定证书文件(比如Python的requests库的verify参数),可以跳过系统证书信任配置,直接在测试代码或命令中引用$CUSTOM_CERT路径
  • 检查.pem证书内容是否完整,避免粘贴时遗漏首尾的-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----标记

内容的提问来源于stack exchange,提问作者Rhea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 11:40:10