Ssl

用於儲存庫複製的 Gitlab HTTPS URI 不起作用 - 無法驗證 SSL 主機 - 致命:無法訪問

  • September 27, 2017

當我製作 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.rbgitlab-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.conf9191 埠而不是 Unicorn 上工作的 gitlab-workhorse:

ProxyPass /gitlab http://127.0.0.1:9191/gitlab

RequestHeader 添加 X-Forwarded-Proto “https”

RequestHeader 設置 X-Forwarded-Ssl on

引用自:https://serverfault.com/questions/822716