[TOC] # Protocole suivi Connecté en tant que `support` sur `192.168.10.102` ## Création du *self-signed certificat* - `openssl req -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes -out 192.168.10.102.crt -keyout 192.168.10.102.key` :::info `-days 3650` : durée de validité du certificat (ici 10 ans) ::: ## Activation du HTTPS - `sudo vim /etc/gitlab/gitlab.rb` - édition de `external_url` à `external_url "https://gitlab.example.com"` - édition de `letsencrypt['enable']` à `letsencrypt['enable'] = false` ## Réécriture de la `external_url` du serveur - édition de `external_url` à `external_url "https://192.168.10.102"` ## Redirection des requêtes `HTTP` (port 80) vers `HTTPS` (port 443) - édition de `nginx['redirect_http_to_https']` à `nginx['redirect_http_to_https'] = true` ## Ajout du certificat - `sudo mkdir -p /etc/gitlab/ssl` - `sudo chmod 755 /etc/gitlab/ssl` - `sudo cp 192.168.10.102.key 192.168.10.102.crt /etc/gitlab/ssl/` ## Reconfiguration du service `gitlab` - `sudo gitlab-ctl reconfigure` # Rendre Git compatible avec le certificat ## Windows 10 - Télécharger le certificat : `\\192.168.10.100\serveurM\ECHANGES\COMMUN\192.168.10.102_cert.zip` sur le serveur - Décompresser l'archive dans le dossier personnel au chemin : `C:\Users\user\ssl_cert` (créer le dossier `ssl_cert`) :::warning Mot de passe `merio` ::: - Dans un `Git BASH` lancer la commande : ` git config --global http.sslCAInfo /c/Users/user/ssl_cert/192.168.10.102.crt` :::info Cette commande modifie le fichier `C:\Users\user\.gitconfig` et y ajoute une référence vers le certificat pour l'approuver ![image](https://hackmd.io/_uploads/By9AD7pO6.png) ::: # Rendre les navigateurs compatibles avec le certificat - Première connexion à https://192.168.10.102 : ![image](https://hackmd.io/_uploads/HJ1fXUndp.png) - Cliquer sur `Avancé` -> `Continuer vers 192.168.10.102 (non sécurisé)` - ![image](https://hackmd.io/_uploads/ByFEQI3_6.png) # Amélioration possibles Une bonne amélioration serait d'héberger notre propre autorité de certification sur le LAN de MERIO. On pourrait également héberger notre propre DNS. ## Guides - [Create Your Own SSL Certificate Authority for Local HTTPS Development](https://deliciousbrains.com/ssl-certificate-authority-for-local-https-development/#why-https-locally) - [Setup your private DNS server](https://thilinaviraj.medium.com/setup-your-private-dns-server-with-bind-a37a29cc3065) # Commandes utiles ## Mise à jour des adresses des *remotes* Dans le cas ou l'adresse du repo distant (i.e. le *remote*) change, il est nécessaire de mettre à jour l'adresse pointée par les repos déjà clonés. - Lister les *remotes* du repo `git remote -v ` ![image](https://hackmd.io/_uploads/SJpcRmaO6.png) - Changer l'URL associée au *remote* `origin` - SSH `git remote set-url origin https://github.com/OWNER/REPOSITORY.git` - HTTPS `git remote set-url origin git@github.com:OWNER/REPOSITORY.git` Source : [Managing remote repositories](https://docs.github.com/en/get-started/getting-started-with-git/managing-remote-repositories?platform=windows) # Sources - https://middlewaretechnologies.in/2022/07/how-to-secure-a-gitlab-server-using-self-signed-certificate.html - https://docs.gitlab.com/omnibus/settings/ssl/index.html#configure-https-manually - https://docs.gitlab.com/omnibus/settings/nginx.html#enable-https - https://docs.gitlab.com/omnibus/settings/ssl/#redirect-http-requests-to-https