У меня есть 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 войдите в систему и измените этот параметр в админпанели под настройками.