You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu自建GitLab HTTP被强制跳转HTTPS及本地HTTP访问方案

问题原因及解决方法

为什么浏览器会强制HTTPS跳转?

主要有三个常见诱因:

  1. HSTS缓存残留:如果之前用HTTPS访问过git.brian.dev,浏览器会存储HSTS(HTTP严格传输安全)规则,强制后续请求自动跳转至HTTPS,即便当前配置已改成HTTP也会生效。
  2. 浏览器自动HTTPS功能:Chrome的「HTTPS优先」、Firefox的「HTTPS-Only模式」这类默认开启的功能,会主动把HTTP请求转为HTTPS。
  3. GitLab内部重定向规则:虽然你设置了external_url为HTTP,但GitLab自带的Nginx可能还有未禁用的HTTPS重定向配置,导致服务器端主动发起跳转。

如何以纯HTTP方式访问GitLab?

按以下步骤逐一排查解决:

一、调整浏览器设置

  • 关闭自动HTTPS功能:
    • Chrome:打开设置→隐私和安全→安全,找到「HTTPS优先」选项并关闭。
    • Firefox:打开设置→隐私与安全,找到「HTTPS-Only模式」,选择「仅在专用窗口中禁用」或「完全禁用」。
  • 清除浏览器HSTS缓存:
    • Chrome:在地址栏输入chrome://net-internals/#hsts,在「Delete domain security policies」输入框中填入git.brian.dev,点击「Delete」。
    • Firefox:在地址栏输入about:config,搜索network.stricttransportsecurity.preloadlist,将其值改为false;或者进入设置→隐私与安全→清除数据,勾选「网站数据」并清除(注意这会清除所有网站缓存,也可通过第三方工具单独清除特定域名的HSTS记录)。

二、修正GitLab配置

  1. 打开GitLab配置文件:
    sudo nano /etc/gitlab/gitlab.rb
    
  2. 确保以下配置正确:
    • 确认external_url为HTTP:
      external_url 'http://git.brian.dev'
      
    • 禁用HTTP转HTTPS的重定向:
      nginx['redirect_http_to_https'] = false
      
    • 注释掉所有SSL相关配置(如果之前配置过):
      # nginx['ssl_certificate'] = "/etc/gitlab/ssl/git.brian.dev.crt"
      # nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/git.brian.dev.key"
      
  3. 重新配置并重启GitLab服务:
    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl restart
    

三、验证效果

完成上述操作后,关闭所有浏览器窗口再重新打开,访问http://git.brian.dev,即可正常以纯HTTP方式访问GitLab。

内容的提问来源于stack exchange,提问作者user24809983

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 07:12:37