更改 SSL 证书后为什么出现 302 重定向?

更改 SSL 证书后为什么出现 302 重定向?

我有一个装有 Ubuntu Server 14.04 的 VPS,并且安装了 GitLab,由 Apache2 提供不同的站点服务。GitLab 版本是 Omnibus 软件包 7.14.1。

我已经成功配置了 GitLab 的 HTTPS 和自签名证书进行测试(假设它是olddomain.com我购买了通配符 SSL 证书(用于*.newdomain.io) 并将其安装到由 Apache 提供服务的其他网站上,并且它们运行良好。

对于 GitLab 来说,情况有些不同。我搜索了所有关于gitlab.olddomain.com并将它们改为gitlab.newdomain.io。因此文件中的/etc/gitlab/gitlab.rb更改如下:

external_url 'https://gitlab.newdomain.io:2443' 

这是唯一改变的设置,其他设置保留为默认值。

Apache的配置是:

<VirtualHost *:80>
    ServerName gitlab.newdomain.io
    Redirect / https://gitlab.newdomain.io/

    CustomLog /var/log/apache2/gitlab/access.log combined
    ErrorLog  /var/log/apache2/gitlab/error.log
</VirtualHost>

使用 HTTPS 的配置:

<VirtualHost *:443>
    ServerName gitlab.newdomain.io

    SSLProxyEngine On
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off

    SSLEngine On
    SSLCertificateFile /etc/ssl/certs/newdomain.io.crt
    SSLCertificateKeyFile /etc/ssl/private/newdomain.io.key

    ProxyRequests Off
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass / https://localhost:2443/
    ProxyPassReverse / https://localhost:2443/

    <Location />
            Order allow,deny
            Allow from all
    </Location>

    CustomLog /var/log/apache2/gitlab/access.log combined
    ErrorLog  /var/log/apache2/gitlab/error.log
</VirtualHost>

在我进行了更改之后,gitlab-ctl reconfigure甚至进行了更改gitlab-ctl restart。对于 Apache,service apache2 reload已经执行了。

当我查看 Chrome 的开发者工具 > 网络,我看到请求 URLhttps://gitlab.newdomain.io, 这状态码302地点https://gitlab.olddomain.com有趣的是服务器:nginx。 这远程地址是xxx.xxx.xxx.xxx:443,但监听该端口的服务应该是Apache2。

运行后netstat我看到以下两行:

tcp6  0  0 :::443          :::*          LISTEN      1849/apache2
tcp   0  0 0.0.0.0:2443    0.0.0.0:*     LISTEN      32493/nginx

两个 DNS 记录gitlab.olddomain.comgitlab.newdomain.io指向同一台机器。当我在浏览器中检查证书时,我发现好的证书,通配符之一newdomain.io,但我访问的是错误的域名。

浏览器缓存已清除、服务器已重启等。

答案1

你的 Gitlab 配置有问题,我也遇到过这种情况。

在 Gitlab 中,你有一个“startpage”的配置。这是你当前未登录时重定向到的页面。
因此,请转到https://gitlab.newdomain.io/users/sign_in登录并在设置下的管理面板中更改此设置。

相关内容