使用智能 http 和 redmine_git_hosting 的 redmine 不允许推送到存储库
redmine with smart http and redmine_git_hosting does not allow pushing to repository
红矿版本:3.4.4.stable
redmine_git_hosting插件版本:1.2.3
gitolite v.3
仅 HTTPS 访问存储库。
我可以克隆 OK 但在推送时出现以下错误:
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
当您通过 HTTP/HTTPS 与 Git 通话时,这是 SSL 终止的问题。
如果您在 NGINX 反向代理后面使用 Redmine,您应该添加额外的 header 以保留有关原始请求方案的信息:
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 Only"。
红矿版本:3.4.4.stable redmine_git_hosting插件版本:1.2.3 gitolite v.3
仅 HTTPS 访问存储库。 我可以克隆 OK 但在推送时出现以下错误:
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
当您通过 HTTP/HTTPS 与 Git 通话时,这是 SSL 终止的问题。
如果您在 NGINX 反向代理后面使用 Redmine,您应该添加额外的 header 以保留有关原始请求方案的信息:
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 Only"。