如何在自托管GitLab实例中使用自定义CAChain?
如何在自托管GitLab实例中使用自定义CA Chain?
别担心,我来帮你一步步搞定这个问题!针对你部署在私有10.1.x.y/16网络中、由企业签名的自托管GitLab实例,要配置自定义CA链/证书密钥对,你可以按照以下步骤操作:
准备证书文件
首先把你的企业签名CA证书链(PEM格式)和对应的私钥文件放到GitLab的默认信任证书目录:/etc/gitlab/trusted-certs/。- 确保证书文件后缀为
.crt或.pem,私钥文件后缀为.key - 设置正确的文件权限,避免GitLab读取失败:
sudo chmod 644 /etc/gitlab/trusted-certs/your-ca-chain.pem sudo chmod 600 /etc/gitlab/trusted-certs/your-private-key.key sudo chown root:root /etc/gitlab/trusted-certs/*
- 确保证书文件后缀为
修改GitLab核心配置
打开GitLab的主配置文件/etc/gitlab/gitlab.rb(建议用sudo vi或sudo nano编辑),添加或修改以下配置项:- 首先指定GitLab的外部访问URL(需和证书中的域名匹配):
external_url 'https://your-gitlab-internal-domain.com' - 配置Nginx使用你的自定义证书和私钥:
nginx['ssl_certificate'] = "/etc/gitlab/trusted-certs/your-ca-chain.pem" nginx['ssl_certificate_key'] = "/etc/gitlab/trusted-certs/your-private-key.key" - 如果GitLab需要访问其他使用该自定义CA的内部服务,还可以指定全局CA文件确保所有组件都信任这个链:
gitlab_rails['ca_file'] = "/etc/gitlab/trusted-certs/your-ca-chain.pem"
- 首先指定GitLab的外部访问URL(需和证书中的域名匹配):
应用配置并重启GitLab
执行GitLab的配置刷新命令,它会自动处理证书信任的相关设置:sudo gitlab-ctl reconfigure配置完成后,重启GitLab服务确保所有组件加载新配置:
sudo gitlab-ctl restart验证配置效果
- 用浏览器访问GitLab的外部URL,确认没有SSL证书警告,证书显示为企业签名的有效状态
- 在GitLab服务器上执行以下命令,检查证书链是否正确加载:
输出中应该能看到完整的自定义CA链信息openssl s_client -connect your-gitlab-internal-domain.com:443
备注:内容来源于stack exchange,提问作者Jon Weinraub
相关产品推荐
相关产品推荐

