-
Notifications
You must be signed in to change notification settings - Fork 2
Custom Domain (ForgeMIA)
NB : Les exemples ci-dessous sont tirés du déploiement d'un projet nommé
diaspara
. N'oubliez pas d'adapter les commandes à votre projet.
Auteur : Eric Quinton
GITLAB permet de générer des sites statiques à partir du composant Pages. Ce document décrit comment :
- demander la création de l'entrée DNS
- demander la création du certificat
- intégrer le DNS et le certificat créés dans GITLAB
La création de l'entrée DNS est à réaliser via ARIANE : https://ariane.inrae.fr/block?id=ariane_sc_cat_item&sys_id=3b374bf637d002006da398a543990e9c
Les informations à fournir sont :
- sous-domaine concerné par la demande : l'adresse finale du site, par exemple : diaspara.bordeaux-aquitaine.inrae.fr ou monsite.eabx.inrae.fr ;
- choix 2, nom DNS existant à lier à ce nouveau nom : pages.mia.inra.fr
Donnez quelques explications et les raisons de la création du DNS et mettez en copie le "responsable" du sous-domaine (pour eabx.inrae.fr, l'administrateur des données, par exemple).
La création du certificat nécessite quelques opération techniques, qui sont décrites ici à partir de Linux (ou utilisez Powershell avec Windows, ça peut fonctionner - non testé). Attention : une clé privée va être générée, celle-ci doit impérativement être protégée et ne pas être diffusée.
La documentation technique pour la création de la demande de certificat est ici. Voici l'ensemble des opérations à réaliser :
Dans un espace protégé de votre ordinateur (chiffré), dans une console :
openssl req -new -newkey rsa:2048 -nodes -keyout diaspara.key -out diaspara.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:INRAE
Organizational Unit Name (eg, section) []:.
Common Name (e.g. server FQDN or YOUR name) []:diaspara.bordeaux-aquitaine.inrae.fr
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Les points (.) permettent de conserver les champs vides pour les options par défaut. Indiquez l'adresse de votre site dans Common Name. Ne mettez pas de mot de passe (contrairement à ce qui est indiqué dans la doc Ariane).
Deux fichiers ont été générés :
-
diaspara.key
, qui contient la clé privée -
diaspara.csr
, qui contient la clé publique associée à la demande de certificat. C'est ce fichier qu'il faut déposer dans le formulaire Ariane.
Vous pouvez consulter la demande de certificat avec cette commande :
openssl req -in diaspara.csr -noout -text
Certificate Request:
Data:
Version: 1 (0x0)
Subject: C=FR, O=INRAE, CN=diaspara.bordeaux-aquitaine.inrae.fr
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:9d:33:d5:96:30:0b:f2:73:63:23:ca:db:1f:71:
(...)
Ouvrez un nouveau formulaire Ariane Certificat de sécurité pour les serveurs, et indiquez ces informations :
- Common Name : indiquez l'adresse du site web (sans https://), p. e. diaspara.bordeaux-aquitaine.inrae.fr
- Type de plate-forme : indiquez Apache
- joignez le fichier
diaspara.csr
généré préalablement
La demande de certificat est en général traitée en 2-3 jours (parfois immédiatement !). Vous recevrez un message vous indiquant que le certificat est prêt.
Une fois que le certificat aura été généré, vous récupérerez deux fichiers :
-
diaspara_bordeaux-aquitaine_inrae_fr_cert.cer
, qui est le certificat proprement dit -
diaspara_bordeaux-aquitaine_inrae_fr_interm.cer
, qui contient l'ensemble des certificats intermédiaires permettant de valider le certificat généré.
Vous devez maintenant créer le certificat complet, avec la commande :
cat diaspara_bordeaux-aquitaine_inrae_fr_cert.cer diaspara_bordeaux-aquitaine_inrae_fr_interm.cer > diaspara_bordeaux-aquitaine_inrae_fr_full.cer
C'est donc le contenu de diaspara_bordeaux-aquitaine_inrae_fr_full.cer
qu'il faudra intégrer dans Gitlab.
Dans votre projet Gitlab, positionnez-vous dans le menu Déploiement > Pages. Cliquez sur le bouton Nouveau domaine, puis :
- indiquez le dns du site dans la zone Domaine par exemple diaspara.bordeaux-aquitaine.inrae.fr
- ajoutez le certificat et la clé privée. Pour cela, dans un terminal :
- affichez le contenu du certificat :
cat diaspara_bordeaux-aquitaine_inrae_fr_full.cer
, copiez-collez le contenu dans le champ correspondant - faites la même chose pour la clé privée :
cat diaspara.key
, et copier-coller.
- affichez le contenu du certificat :
Si une information est erronée, Gitlab vous affichera une page d'erreur.
Enregistrez ensuite les informations : votre domaine est alors créé.
Ne vous inquiétez pas si votre site semble inaccessible dans les minutes qui suivent : il faut un certain temps pour que les redirections soient actives.