Redmine with smart http and redmine_git_hosting 不允许推送到存储库



Redmine 版本:3.4.4.stable redmine_git_hosting插件版本:1.2.3 吉托石 v.3

HTTPS 仅访问存储库。 我可以克隆正常,但是在推送时出现以下错误:

fatal: Authentication failed for '<repo URL>'

但是,在git_hosting.log的服务器端,我收到以下错误:

SmartHttp : your are trying to push data without SSL!, exiting !

我对问题的真正原因感到困惑

我的虚拟主机 redmine 配置文件是:

`<VirtualHost *:443>
ServerName .....
ServerAlias ......
ServerAdmin ....
DocumentRoot  /opt/redmine/public
PassengerRuby ......
PassengerFriendlyErrorPages on
ErrorLog /var/log/httpd/redmine-error_log
CustomLog /var/log/httpd/redmine-access_log common
<Directory "/opt/redmine">
Require all granted
# MultiViews must be turned off
Options -MultiViews
</Directory>
PerlLoadModule Apache::Authn::Redmine
<Location />
Order allow,deny
Allow from all
PerlAccessHandler Apache::Authn::Redmine::access_handler
PerlAuthenHandler Apache::Authn::Redmine::authen_handler
RedmineDSN "DBI:Pg:database=redmine;host=127.0.0.1"
RedmineDbUser "redmine"
RedmineDbPass "xxxxx"
RedmineGitSmartHttp yes
</Location>
</VirtualHost>`

提前感谢任何帮助!

好的,我已经想通了(不感谢晦涩的错误消息(。我一定是唯一一个使用 https 的人! 基本上我的虚拟主机配置缺少 3 个条目 re SSL:

SSLEngine on SSLCertificateFile SSLCertificateKeyFile

这是SSL终止的问题,当你通过HTTP/HTTPS与Git通信时。

如果您在 NGINX 反向代理后面使用 Redmine,您应该添加一个额外的标头来保留有关原始请求方案的信息:

proxy_set_header   X-Forwarded-Proto $scheme;

对于执行SSL终止的Apache,值应为:

RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
RequestHeader set "X-Forwarded-SSL" expr=%{HTTPS}

在您的情况下,您正在侦听 *:443,并且没有为虚拟主机指定 SSL 证书设置。另一种选择是在Redmine设置下为SmartHTTP设置"仅HTTP"。

相关内容

  • 没有找到相关文章

最新更新