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

Включение SSL для результатов GitLab в ERR_CONNECTION_REFUSED

У меня уже была установленная версия GitLab в течение нескольких месяцев, и я решил, что пора добавить настоящий SSL-сертификат (не самоподписанный).

Следуя документации, меняю следующую строку:

external_url 'http://<domain>.com'

кому:

external_url 'https://<domain>.com'

И раскомментировал следующие строки:

nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt"
nginx['ssl_certificate_key'] "/etc/gitlab/ssl/gitlab.key"

И на всякий случай перепроверил ключевые файлы:

root@host:/etc/gitlab# cat /etc/gitlab/ssl/gitlab.crt
-----BEGIN CERTIFICATE-----
...

root@host:/etc/gitlab# cat /etc/gitlab/ssl/gitlab.key
-----BEGIN PRIVATE KEY-----
...

Затем я побежал gitlab-ctl reconfigure, и в конце я получил успешное сообщение. Однако, переходя по URL-адресу GitLab, я получаю ERR_CONNECTION_REFUSED. Когда я закомментирую все строки выше и запускаю gitlab-ctl reconfigure, все возвращается в нормальное состояние на HTTP-порту 80.

Что может заставить nginx отказывать в подключении, когда я загружаю в файл конфигурации два сертификата и корректирую URL? Спасибо!

Похоже, GitLab не прослушивает 443. Редирект на 80 отправляет вас на 443, где вы получаете сообщение об отказе в соединении. Конфигурация должна иметь listen 443 линия (см. http://nginx.org/en/docs/http/configuring_https_servers.html), что позволяет ему получать запросы SSL.

Пример со страницы:

server {
    listen              443 ssl;
    server_name         www.example.com;
    ssl_certificate     www.example.com.crt;
    ssl_certificate_key www.example.com.key;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ...
}