Назад | Перейти на главную страницу

Почему у меня 302 редирект после смены SSL-сертификата?

У меня есть VPS с Ubuntu Server 14.04, и я установил 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 Инструменты разработчика> Сеть, Я вижу URL запроса к https://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.com и gitlab.newdomain.io указывают на ту же машину. Когда я проверяю сертификат в браузере, у меня появляется хорошо сертификат, подстановочный знак один из newdomain.io, но я захожу не в тот домен.

Кеш браузера был очищен, сервер перезагружен и т. Д.

Есть проблема с вашей конфигурацией Gitlab, у меня тоже была проблема.

В Gitlab у вас есть конфигурация для "стартовой страницы". Это страница, на которую вы будете перенаправлены, если в настоящее время не вошли в систему.
Так что иди в https://gitlab.newdomain.io/users/sign_in войдите в систему и измените этот параметр в админпанели под настройками.