Instalación de GitLab con HTTPS

0
795

Índice de contenidos


1. Entorno

Este tutorial está escrito usando el siguiente entorno:

  • Hardware: Slimbook Pro 2 13.3″ (Intel Core i7, 32GB RAM)
  • Sistema Operativo: LUbuntu 18.04
  • GitLab CE 11.1.4


2. Introducción

Si hay una herramienta dentro del mundo DevOps que merece la pena conocer en profundidad sin duda alguna es GitLab. Incluso es su versión Community (gratuita para proyectos comerciales que tengan su propio servidor) cubre todos los aspectos del desarrollo desde la definición de historias en un Kanban (Scrum en la versión Enterprise) hasta su puesta en producción en Kubernetes, pasando por la definición de Pipelines como vimos en este tutorial

Por esta razón cada vez es más común encontrarse con esta herramienta en los clientes, pero donde muchas veces solo la utilizan de repositorio de Git sin sacarle el máximo partido que tiene.

En este tutorial vamos a ver cómo instalar la versión Community y tener acceso HTTPS de una forma muy sencilla y automática.

Nota importante: para seguir este tutorial es imprescindible un nombre de dominio real asociado a una máquina que esté publica en Internet.


3. Vamos al lío

Partiendo de que tenemos acceso con los permisos necesarios a una máquina con Ubuntu Xenial (16.04) instalado, estos son los pasos que tenemos que seguir.

Lo primero nos vamos a asegurar de tener todas las dependencias necesarias, para ello ejecutamos:

Descargamos e instalamos el GPG (GNU Privacy Guard) Key

Refrescamos los paquetes

Y ya estamos en disposición de instalar el paquete de GitLab:

La instalación cubre de forma automática todos los elementos necesarios para instalar y desplegar la aplicación; pero hay una serie de configuraciones que tenemos que realizar.

Antes de nada tenemos que asegurarnos de que nuestra máquina tiene habilitados los puertos 80 y 443.

Todos los cambios de configuración de GitLab se realizan en el fichero /etc/gitlab/gitlab.rb el cual podemos abrir para editar con el comando:

El primer cambio que tenemos que realizar en este fichero es la propiedad external_url que es la que va a utilizar para poder conectar con la herramienta a través del navegador. En este caso como queremos que sea a través de HTTPS en el dominio definido tenemos que poner:

Ahora viene lo mejor, todos sabemos lo tedioso que es el tema de los certificados en el protocolo HTTPS, pues bien GitLab lo ha simplificado a modificar unas propiedades en este fichero.

Habilitar que vamos a hacer uso de Let’s Encrypt, que para quien no lo conozca es un organismo certificador que ofrece certificados válidos gratuitos con el fin de facilitar la seguridad en las gestiones de Internet. Simplemente tenemos que buscar la siguiente propiedad y ponerla a true.

Es buena idea rellenar la propiedad contact_emails con los emails que Let’s Encrypt va a utilizar para comunicar eventos con el certificado.

Para no tener problemas con la validación del dominio en Let’s Encrypt, el dominio tiene que ser real y válido, y hay que hacer las siguientes modificaciones en el fichero.

Hechas estas modificaciones, salvamos el fichero y ejecutamos el comando:

Si nos fijamos en el log que saca por consola debemos ver la conexión con Let’s Encrypt para la descarga de los certificados que almacena en la ruta /etc/gitlab/ssl junto con el nombre de nuestro dominio.

Dos son los errores que nos podemos encontrar en este punto. El primero relativo a la validación del dominio por parte de Let’s Encrypt, donde te tendrás que asegurar de que tu dominio es válido y público en Internet (cuidado con los tiempos de propagación de DNS) y el segundo relativo al timeout de nginx; donde para resolverlo simplemente tienes que volver a comentar la línea: nginx[‘custom_nginx_config’] = “include /var/opt/gitlab/nginx/conf/custom/*.conf;”

Si todo es correcto ya tendremos nuestra instancia de GitLab a través de HTTPS. Una cosa que tienes que tener en cuenta es que los certificados de Let’s Encrypt solo durán 90 días, para resolver este problema de forma automática puedes crear el siguiente fichero:

Con el siguiente contenido:

Y darle los permisos de ejecución necesarios.

Hecho esto y si todo es correcto ya podrás conectar con GitLab a través del dominio que le hayas dado vía HTTPS.

Una vez dentro como administrador es buena idea deshabilitar el registro público. Esto se hace desde la sección “Admin Area” en la opciones de la izquierda “Settings” y en la sección “Sign-up settings” desmarcar la opción “Enable Sign-up”.


4. Conclusiones

Como ves GitLab no nos lo puede poner más fácil para aumentar la seguridad de los accesos a la herramienta a través de HTTPS.

Cualquier duda o sugerencia en la zona de comentarios.

Saludos.

Dejar respuesta

Please enter your comment!
Please enter your name here