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


Tal vez pueda interesarte


Compartí este artículo