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

访问内部GitLab时报x509未知签名错误,如何配置Terraform使用证书认证?

解决内部GitLab Terraform提供者x509证书未知错误

第一步:获取内部GitLab实例的根CA证书

你可以通过两种方式获取可信根证书:

  • 方法1:使用openssl命令行导出
    执行以下命令直接导出站点完整证书链,保存为本地crt文件:
    openssl s_client -connect admin-repo.[ORG DOMAIN].com:443 -showcerts < /dev/null | sed -n '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p' > gitlab_internal.crt
    
    导出后可以手动保留文件末尾的根CA证书段即可。
  • 方法2:通过浏览器导出
    1. 用浏览器打开你的GitLab地址https://admin-repo.[ORG DOMAIN].com
    2. 点击地址栏的不安全提示,进入安全设置选择「查看证书」
    3. 切换到「详细信息」标签,选择证书链最顶层的根CA证书,选择导出,格式选PEM(后缀为.crt/.pem均可),保存到本地。

第二步:配置Terraform使用证书

优先选择第一种配置方式,无需修改系统全局证书设置:

方式1:直接在GitLab Provider配置中指定证书

修改你的provider块,添加ca_cert参数读取本地证书文件即可:

provider "gitlab" {
  token    = var.token
  base_url = var.base_url
  ca_cert  = file("${path.module}/gitlab_internal.crt") # 替换为你实际保存证书的路径
}

方式2:将证书加入系统可信CA列表

如果有多个工具需要信任该内部证书,可以配置系统级可信根CA,不同操作系统操作如下:

  • Debian/Ubuntu 系列:
    1. 将导出的crt文件放入/usr/local/share/ca-certificates/目录
    2. 执行命令sudo update-ca-certificates生效
  • RHEL/CentOS/Fedora 系列:
    1. 将导出的crt文件放入/etc/pki/ca-trust/source/anchors/目录
    2. 执行命令sudo update-ca-trust extract生效
  • Windows:
    1. 双击crt文件,选择安装证书,存储位置选「本地计算机」
    2. 选择「将所有证书都放入下列存储」,浏览选择「受信任的根证书颁发机构」,确认完成安装
  • MacOS:
    1. 双击crt文件,钥匙串访问选择「系统」完成添加
    2. 打开钥匙串访问,找到刚导入的证书,右键选「显示简介」->「信任」->「使用此证书时」选择「始终信任」,保存生效

临时测试方案(不推荐用于生产)

如果仅需要临时测试验证逻辑,可以跳过证书校验,在provider配置中添加insecure = true即可,该配置会存在中间人攻击风险,生产环境禁止使用:

provider "gitlab" {
  token    = var.token
  base_url = var.base_url
  insecure = true
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:48:01