使用 htpasswd 支持 Apache 的 Gitlab

我想在 Apache Web 服务器后面设置一个 GitLab,并为 Web 界面配置了 htpasswd。

在我当前的设置中,我启动并运行了 GitLab 和使用 docker-compose 作为容器的 Apache。第一次通过浏览器访问我的 GitLab 站点时,我必须输入 htpasswd 凭据。之后,我被定向到登录屏幕。一些简单的测试证明测试用户可以创建项目。

但问题是,由于 Apache 中的 htpasswd,我无法直接使用 git clone 拉出测试存储库(错误:IP - testUser [30/Jul/2021:09:03:35 +0000] "GET /testUser/myfirstproject.git/info/refs?service=git-upload-pack HTTP/1.1" 401 381)。

这是我的这个虚拟主机的 apache-config。

<VirtualHost *:443>                                                                                                                                                                                                                           
  ServerName <SERVER_NAME>                                                                                                                                                                  
  ServerAdmin <SERVER_ADMIN>

  SSLEngine on                                                                                                                                                                                                                          
  SSLProtocol All -SSLv2 -SSLv3                                                                                                                                                                                                         
  SSLCertificateFile /etc/letsencrypt/live/<SERVER_NAME>/fullchain.pem                                                                                                                                        
  SSLCertificateKeyFile  /etc/letsencrypt/live/<SERVER_NAME>/privkey.pem                                                                                                                                      

  DocumentRoot "/var/www/gitlab"                                                                                                                                                                                                        
  <Location />                                                                                                                                                                                                                          
    AuthType Basic                                                                                                                                                                                                                      
    AuthName "Restricted Files"                                                                                                                                                                                                         
    # (Following line optional)                                                                                                                                                                                                         
    AuthBasicProvider file                                                                                                                                                                                                              
    AuthUserFile "/usr/local/apache2/passwd/password"                                                                                                                                                                                   
    Require user auth-user                                                                                                                                                                                                              
  </Location>

  ProxyPass / http://gitlab:80/                                                                                                                                                                                                         
  ProxyPassReverse / http://gitlab:80/                                                                                                                                                                                                  

  ErrorLog logs/gitlab_error_log                                                                                                                                                                                                        
  CustomLog logs/gitlab_access_log common env=!dontlog                                                                                                                                                                                  
                                                                                                                                                                                                                                              
</VirtualHost>                                                                                                                                                                                                                                                      

我想我需要添加另一个 Location 或 Locationmatch 规则,但目前我不确定我的规则需要是什么才能使我的远程推送、拉取和克隆工作。 git-cli-tool 中是否还有一个选项可以实现这一点?

感谢每一个提示或建议!


更新 30.07

为了让 git cli 与我的 GitLab 一起工作,我必须添加另一个 Locationmatch-Rule,它在 .git 中触发,以存储库结束 位置规则 {{1 }}。

/

由于我不知道我是否以这种方式很好地解决了我的任务,但我仍然期待更好的解决方案或提示建议。

tianshixincq 回答:使用 htpasswd 支持 Apache 的 Gitlab

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/10649.html

大家都在问