Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Gitlab en Apache2 con conexión segura sobre HTTPS usando reverse_proxy

Imago voragine.net
[actualizado el ]

Explico en esta entrada cómo instalar Gitlab usando el paquete Omnibus, que es la manera más fácil de poner en marcha una instancia y mantenerla actualizada. Luego explico cómo configurar la conexión segura HTTPS usando un certificado Let’s Encrypt. En mi caso la instalación se hace en un servidor Debian en el que hay más servicios funcionando bajo un servidor web Apache2. Así que configuro un proxy inverso para la conexión segura ya que el puerto 443 está siendo usando por Apache2.

Si no se está familiarizado con la generación de certificados TLS de Let’s Encrypt usando certbot, es aconsejable leer antes este otro artículo.

Preparación del virtual host de Apache2

Antes de proceder a la instalación, hay que configurar un virtual host en el servidor Apache2. Basta habilitar el virtual host para que sea accesible desde el dominio que vamos a usar, y así poder expedir el certificado Let’s Encrypt:

La parte que hace referencia al directorio .well-known me resulta necesaria para que certbot no dé error al generar el certificado. Yo he necesitado también crear el subdirectorio acme-challenge, darle los permisos correctos y asegurarse de que el usuario del servidor web tiene acceso de lectura y escritura. Asumiendo que el usuario del servidor web es www-data, sería algo así:

Instalación de Gitlab

No entro en detalles sobre cómo instalar Gitlab usando el paquete Omnibus ya que está bien documentado en la documentación oficial de Gitlab. Desde la página de Gitlab se pueden consultar los pasos a seguir en distintas distribuciones, en mi caso Debian.

Es un proceso sencillo: hay que añadir el repositorio al listado de fuentes de apt y luego ejecutar el instalador.

Primero se instalan algunos paquetes necesarios:

Se añade el repositorio de Gitlab al sistema:

Se instala el paquete Gitlab, de momento configurándolo con conexión no segura HTTP:

En este momento Gitlab ya debería estar disponible en su versión no segura en la url que hayamos elegido con la variable EXTERNAL_URL. Vamos ahora con la conexión TLS.

Configuración del proxy inverso de Apache

Como explica Oliver Smith, hay que modificar el archivo de configuración del virtual host de la siguiente manera:

Activación de HTTPS en Gitlab

La configuración principal de Gitlab se encuentra en el archivo /etc/gitlab/gitlab.rb. En él hay que modificar las siguientes líneas:

Una vez hechos los cambios, se puede comprobar la nueva configuración:

Y por último reiniciamos Gitlab:

Mantenimiento básico de gitlab

El comando gitlab-ctl permite también reiniciar componentes de manera individual. Por ejemplo para reiniciar Nginx:

Para comprobar el estado de los servicios:

Y para reconfigurar Omnibus:

Los logs de gitlab se pueden consultar en /var/log/gitlab. Están desglosados por servicios.

Dejar un comentario

No hay comentarios en esta entrada.
*
*

 

No hay trackbacks