Anteriormente expliqué cómo instalar GitLab desde los fuentes en Debian. Veamos ahora cómo habilitar el soporte para HTTPS para que el sitio sea seguro.
Para comenzar, se debe compilar Nginx con soporte para SSL. A su vez, es recomendable forzar HTTPS para mejorar la seguridad.
Editar la configuración de Nginx provista por GitLab y cambiar a una configuración de sitio seguro (puerto 443
):
root@gitlab:~# cd /usr/local/nginx/etc/ root@gitlab:/usr/local/nginx/etc# nano gitlab.conf
Cambiar la configuración de "host HTTP Normal" por defecto:
## Normal HTTP host server { listen 80; server_name gitlab.linuxito.com;
Por una configuración con SSL sobre el puerto 443
:
server { listen 443 ssl http2; ssl_certificate /usr/local/nginx/etc/ssl/chain.crt; ssl_certificate_key /usr/local/nginx/etc/ssl/server.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; ssl_session_tickets off; ssl_protocols TLSv1.2; ssl_ciphers 'ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384'; ssl_prefer_server_ciphers on; ssl_ecdh_curve 'X25519:X448:prime256v1:secp384r1'; ssl_dhparam /usr/local/nginx/etc/ssl/dhparam.pem; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; add_header Strict-Transport-Security "max-age=15552000; includeSubDomains"; server_name gitlab.linuxito.com;
Luego editar la configuración de GitLab:
root@gitlab:/usr/local/nginx/etc# cd /usr/local/gitlab/config/ root@gitlab:/usr/local/gitlab/config# nano gitlab.yml
Cambiar el puerto a 443
y habiltiar HTTPS:
port: 443 # Set to 443 if using HTTPS, see installation.md#using-https for additional HTTPS configuration details https: true # Set to true if using HTTPS, see installation.md#using-https for additional HTTPS configuration details
A continuación, configurar gitlab-shell:
root@gitlab:/usr/local/gitlab/config# cd /usr/local/gitlab-shell/ root@gitlab:/usr/local/gitlab-shell# nano config.yml
Cambiar la URL para que comience con "https://":
gitlab_url: https://gitlab.linuxito.com/ http_settings: self_signed_cert: false
Finalmente, reiniciar GitLab:
root@gitlab:/usr/local/gitlab-shell# service gitlab restart
Referencias