用於儲存庫複製的 Gitlab HTTPS URI 不起作用 - 無法驗證 SSL 主機 - 致命:無法訪問
當我製作 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”}
完成 500 內部伺服器102 毫秒內出錯(ActiveRecord:2.5 毫秒)
JWT::DecodeError(Nil JSON Web 令牌):
lib/gitlab/workhorse.rb:120:in ‘verify_api_request!’
app/controllers/projects/git_http_client_controller.rb:154:in ‘verify_workhorse_api!’
lib/gitlab/request_profiler/middleware.rb:15:in ‘call’
lib/gitlab/middleware/go.rb:16:in ‘call’
SSH URL 執行良好。Gitlab 與 Apache2 和 HTTPS 一起使用。
/etc/gitlab/gitlab.rb
包含:external_url ’ https://my.example.com/gitlab '
web_server
$$ ‘username’ $$= ‘apache’ #‘gitlab-www’
web_server$$ ‘group’ $$= ‘apache’ #‘gitlab-www’
nginx$$ ’enable’ $$= 假
獨角獸$$ ’listen’ $$= ‘127.0.0.1’
獨角獸$$ ‘port’ $$= 9099
/etc/apache2/apache2.conf
包含:ProxyPass /gitlab http://127.0.0.1:9099/gitlab
ProxyPassReverse /gitlab http://127.0.0.1:9099/gitlab
RequestHeader add 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
如何解決這個問題呢?
在 9191 埠上啟用 gitlab-workhorse:
external_url ’ https://my.example.com/gitlab '
gitlab_workhorse
$$ ’enable’ $$= 真正的
gitlab_workhorse$$ ’listen_network’ $$=“tcp”
gitlab_workhorse$$ ’listen_addr’ $$=“127.0.0.1:9191” 獨角獸
$$ ’listen’ $$= ‘127.0.0.1’
獨角獸$$ ‘port’ $$= 9099 網路伺服器
$$ ’external_users’ $$=$$ ‘www-data’ $$
網路伺服器$$ ‘username’ $$= ‘apache’ #‘gitlab-www’
web_server$$ ‘group’ $$=‘apache’#‘gitlab-www’ nginx
$$ ’enable’ $$=假
這就是整個 gitlab.rb 配置,其他行註釋。
並
proxyPass
在/etc/apache2/apache2.conf
9191 埠而不是 Unicorn 上工作的 gitlab-workhorse:ProxyPass /gitlab http://127.0.0.1:9191/gitlab
RequestHeader 添加 X-Forwarded-Proto “https”
RequestHeader 設置 X-Forwarded-Ssl on