![用于存储库克隆的 Gitlab HTTPS URI 不起作用-无法验证 SSL 主机-致命:无法访问](https://linux22.com/image/695887/%E7%94%A8%E4%BA%8E%E5%AD%98%E5%82%A8%E5%BA%93%E5%85%8B%E9%9A%86%E7%9A%84%20Gitlab%20HTTPS%20URI%20%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8-%E6%97%A0%E6%B3%95%E9%AA%8C%E8%AF%81%20SSL%20%E4%B8%BB%E6%9C%BA-%E8%87%B4%E5%91%BD%EF%BC%9A%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE.png)
当我制作 Eclipse -> 文件 -> 导入 -> 项目 -> 来自 Git 的项目 -> 克隆 URI -> 从 Gitlab 输入存储库 HTTPS URI 时,出现错误:
可能的原因:
URL 不正确
没有网络连接(例如错误的代理设置)
无法验证 SSL 主机(在 Git 配置中设置 http.sslVerify=false)
我已经添加了http.sslVerify false
Eclipse 配置,但它仍然不起作用。
如果我git clone https://my.example.com/gitlab/root/repository.git
在 cmd 中执行,我会得到:
克隆到‘存储库’...
致命:无法访问'https://my.example.com/gitlab/root/repository.git':请求的 URL 返回错误:500
Gitlab生产日志显示:
由 Projects::GitHttpController#info_refs 处理为 HTML
参数:{“service”=>“git-upload-pack”、“namespace_id”=>“java”、“project_id”=>“project.git”}
在 102 毫秒内完成 500 内部服务器错误(ActiveRecord:2.5 毫秒)
JWT::DecodeError(Nil JSON web 令牌):
lib/gitlab/workhorse.rb:120:在'verify_api_request!'
app/controllers/projects/git_http_client_controller.rb:154:在'verify_workhorse_api!'
lib/gitlab/request_profiler/middleware.rb:15:在'call'lib
/gitlab/middleware/go.rb:16:在`call'中
SSH URL 运行良好。Gitlab 与 Apache2 和 HTTPS 一起使用。/etc/gitlab/gitlab.rb
包含:
外部网址'https://my.example.com/gitlab'
web_server['username'] = 'apache' #'gitlab-www'
web_server['group'] = 'apache' #'gitlab-www'
nginx['enable'] = false
unicorn['listen'] = '127.0.0.1'
unicorn['port'] = 9099
/etc/apache2/apache2.conf
包含:
ProxyPass /gitlabhttp://127.0.0.1:9099/gitlab
ProxyPassReverse /gitlabhttp://127.0.0.1:9099/gitlab
RequestHeader 添加 X-Forwarded-Proto https
使用的版本:
GitLab 8.14.5
GitLab Shell 4.0.3
GitLab Workhorse 1.1.1
GitLab API v3
Git 2.7.4
有关于类似问题的文章修复 GitLab 上通过 HTTPS 克隆的问题但修改/etc/gitlab/gitlab.rb
gitlab-workhorse 配置没有帮助。
类似问题: 使用 HTTP(S) 和 Apache 作为反向代理的 git 操作出现错误 500
如何解决这个问题呢?
答案1
在 9191 端口上启用 gitlab-workhorse:
外部网址'https://my.example.com/gitlab‘
gitlab_workhorse['enable'] = true
gitlab_workhorse['listen_network'] = “tcp”
gitlab_workhorse['listen_addr'] = “127.0.0.1:9191”独角兽['listen'] = '127.0.0.1'
独角兽['port'] = 9099web_server['external_users'] = ['www-data']
web_server['username'] = 'apache' #'gitlab-www'
web_server['group'] = 'apache' #'gitlab-www'nginx['enable'] = false
这就是整个 gitlab.rb 配置,其他行都已注释。
并将其proxyPass
放入/etc/apache2/apache2.conf
在 9191 端口而不是 Unicorn 上运行的 gitlab-workhorse 中:
ProxyPass /gitlabhttp://127.0.0.1:9191/gitlab
RequestHeader 添加 X-Forwarded-Proto "https"
RequestHeader 设置 X-Forwarded-Ssl