Ya tenía una instalación de GitLab desde hace algunos meses y decidí que era hora de agregar un certificado SSL real (no autofirmado).
Siguiendo la documentación, cambio la siguiente línea:
external_url 'http://<domain>.com'
a:
external_url 'https://<domain>.com'
Y descomentó las siguientes líneas:
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt"
nginx['ssl_certificate_key'] "/etc/gitlab/ssl/gitlab.key"
Y sólo para estar seguro, verifiqué dos veces los archivos clave:
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-----
...
Luego ejecuté gitlab-ctl reconfigure
y recibí un mensaje exitoso al final. Sin embargo, al navegar a la URL de GitLab, aparece un archivo ERR_CONNECTION_REFUSED
. Cuando comento todas las líneas anteriores y ejecuto gitlab-ctl reconfigure
, todo vuelve a la normalidad en el puerto HTTP 80.
¿Qué podría causar que nginx rechace conexiones cuando le doy dos certificados al archivo de configuración y ajusto la URL? ¡Gracias!
Respuesta1
Parece que GitLab no está escuchando en 443. La redirección en 80 te envía a 443 donde obtienes Conexión rechazada. La configuración debe tener una listen 443
línea (verhttp://nginx.org/en/docs/http/configuring_https_servers.html) que le permite recibir solicitudes SSL.
Ejemplo de la página:
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;
...
}