我刚刚按照 https://about.gitlab.com/install/#ubuntu 中的说明使用 Gitlab 设置了 Ubuntu 18.04 LTS 服务器。
我已从 GoDaddy 颁发了 ssl 证书,并确认这适用于 Gitlab 服务器。
我随后更新了 gitlab.rb:
gitlab_rails[‘lfs_enabled’] = true
我已经从 https://git-lfs.github.com/安装了 GIT LFS 客户端。
然后我尝试在网上寻找解决方案,了解为什么我无法让 LFS 工作。我总是得到
x509:由未知机构签署的证书
其他设置在gitlab.rb中完成:
gitlab_workhorse[‘env’] = {
‘SSL_CERT_DIR’ => ‘/opt/gitlab/embedded/ssl/certs/’
}
nginx[‘redirect_http_to_https’] = true
我不是 Linux/Unix/git 方面的专家 - 但使用 Unix/Linux 已经有 30 多年了,并且使用 git 也有很多年了 - 不仅仅是我自己之前用 LFS 设置了 git。
我在运行
git clone ...
将源代码从 BitBucket 中的私有 Git 存储库下载到 Docker 映像时遇到了同样的问题。我通过禁用 SSL 检查解决了这个问题,如下所示:
GIT_SSL_NO_VERIFY=1 git clone ...
请注意,环境参数和 git clone 命令之间没有
&&
。
您还可以使用
git config
: 设置该选项
git config http.sslverify false
对于我构建 Docker 映像的用例,设置环境变量更容易。
问题是 Git LFS 查找证书的方式与 Git 的其他部分不同。
可能需要一些帮助才能找到正确的证书。
我和我的用户通过将 http.sslCAInfo 指向他们用于 gitlab 的用户私钥的位置解决了这个问题。
git config http.sslCAInfo ~/.ssh/id_ed25519
,其中 id_ed25519 是有问题的存储库的用户私钥,因此请适当更改。
在 Ubuntu 上只需更新您的系统 CA 存储
# move your cert into /usr/local/share/ca-certificates
sudo curl -s 'my-pki.de/my-cert.pem' --output /usr/local/share/ca-certificates/my-cert.crt
# update store
sudo update-ca-certificates