Modifications pour le document Mettre en place un sous-domaine

Modifié par Gaetan RETEL le 2025/10/05 00:35

Depuis la version 3.28
modifié par Clément AUBIN
sur 2021/04/18 10:40
Commentaire de modification : Il n'y a aucun commentaire pour cette version
À la version 3.10
modifié par Clément AUBIN
sur 2021/04/18 09:25
Commentaire de modification : Il n'y a aucun commentaire pour cette version

Résumé

Détails

Propriétés de la Page
Contenu
... ... @@ -58,7 +58,7 @@
58 58  
59 59  Pour la demande du nouveau certificat, utilisez la commande suivante. Lorsque certbot demande quelle méthode de vérification utiliser pour générer le certificat, choisissez //Spin-up a temporary webserver//.
60 60  
61 -{{code language="shell"}}
61 +{{code language="none"}}
62 62  systemctl stop nginx && certbot certonly -d monservice.atilla.org && systemctl start nginx
63 63  {{/code}}
64 64  
... ... @@ -66,7 +66,7 @@
66 66  
67 67  Si vous n’avez pas ce genre de message, avant de démarrer tout diagnostique, assurez-vous de bien redémarrer le serveur Nginx, pour éviter toute interruption de service trop longue :
68 68  
69 -{{code language="shell"}}
69 +{{code language="none"}}
70 70  systemctl start nginx
71 71  ## Pour vérifier que tout va bien
72 72  systemctl status nginx
... ... @@ -76,109 +76,4 @@
76 76  
77 77  Finalement, on va devoir mettre en place la configuration qui va tout lier ensemble, c’est elle qui va indiquer que, lorsqu’un utilisateur se connecte au service, on utilisera le certificat SSL qui a été généré plus haut, et on enverra les connexions à la machine voulue.
78 78  
79 -==Méthode manuelle==
80 80  
81 -===Création de la configuration===
82 -
83 -On va créer la configuration d’Nginx dans le dossier ##/etc/nginx/sites-available##. Par convention, le nom du fichier de configuration va correspondre au nom du domaine sur lequel on expose le service. Dans notre cas, il s’agira de ##monservice.atilla.org##.
84 -
85 -La plupart du temps, si on ne veut pas s’embêter dans la mise en place de la configuration, le plus simple consiste à copier / coller une configuration d’un service existant, en espérant que celle-ci soit suffisamment standard pour que ça marche.
86 -
87 -Voici à peu près ce à quoi doit ressembler la configuration. Attention : il est possible que cela change au fil du temps et que le contenu de ce tuto n’ait pas été mis à jour :).
88 -
89 -{{code language="nginx"}}
90 -server {
91 - listen 80;
92 - server_name monservice.atilla.org;
93 - return 301 https://monservice.atilla.org$request_uri;
94 -}
95 -
96 -server {
97 - listen 443 ssl http2;
98 -
99 - server_name monservice.atilla.org;
100 -
101 - ssl on;
102 - ssl_certificate_key /etc/letsencrypt/live/monservice.atilla.org/privkey.pem;
103 - ssl_trusted_certificate /etc/letsencrypt/live/monservice.atilla.org/chain.pem;
104 - ssl_certificate /etc/letsencrypt/live/monservice.atilla.org/fullchain.pem;
105 -
106 - access_log /var/log/nginx/monservice.atilla.org/access.log;
107 - error_log /var/log/nginx/monservice.atilla.org/error.log;
108 -
109 - location / {
110 - proxy_set_header Host $host;
111 - proxy_set_header X-Forwarded-For $remote_addr;
112 - proxy_pass http://monservice-prod.prod.infra.atilla.org/;
113 - }
114 -}
115 -{{/code}}
116 -
117 -Voici ci-après une description rapide des contenus de ce fichier.
118 -
119 -On commece par le premier bloc ##server##, celui-ci est très simple et concis, son job, c'est de rediriger tout le traffic HTTP qui arrive sur monservice.atilla.org en HTTPs.
120 -
121 -{{code language="nginx"}}
122 -server {
123 - // On écoute sur le port 80 (le port utilisé par défaut avec HTTP)
124 - listen 80;
125 - // On répond aux requêtes qui pointent vers le domaine monservice.atilla.org
126 - server_name monservice.atilla.org;
127 - // On redirige chaque requête vers son équivalent HTTPs
128 - return 301 https://monservice.atilla.org$request_uri;
129 -}
130 -{{/code}}
131 -
132 -Le second bloc ##server## permet de définir comment va être géré le traffic HTTPs, c'est ici qu'on a la plupart de la configuration importante.
133 -
134 -{{code language="nginx"}}
135 -server {
136 - // On écoute sur le port 443, qui est celui par défaut pour le HTTPs.
137 - // Les deux autres attributs ssl et http2 indiquent :
138 - // * Qu'on va chiffrer la connexion avec SSL (le principe du HTTPs)
139 - // * Qu'on supporte le protocole HTTP/2
140 - listen 443 ssl http2;
141 -
142 - // Comme avant, on répond aux requêtes qui pointent vers le domaine monservice.atilla.org
143 - server_name monservice.atilla.org;
144 -
145 - // On indique encore une fois qu'on va utiliser le SSL, et on fournit les fichiers qui
146 - // sont nécessaires pour authentifier le serveur et chiffrer la connexion.
147 - ssl on;
148 - ssl_certificate_key /etc/letsencrypt/live/monservice.atilla.org/privkey.pem;
149 - ssl_trusted_certificate /etc/letsencrypt/live/monservice.atilla.org/chain.pem;
150 - ssl_certificate /etc/letsencrypt/live/monservice.atilla.org/fullchain.pem;
151 -
152 - // On configure l'emplacement des logs
153 - access_log /var/log/nginx/monservice.atilla.org/access.log;
154 - error_log /var/log/nginx/monservice.atilla.org/error.log;
155 -
156 - // C'est ici que la "magie" opère :)
157 - // La directive proxy_pass nous permet de rediriger tout le traffic vers la machine virtuelle qui correspond
158 - // Les directives proxy_set_header permettent d'ajouter des en-têtes spécifiques à destination de la machine virtuelle,
159 - // par exemple pour que celle-ci comprenne qu'elle se trouve derrière un frontal web.
160 - location / {
161 - proxy_set_header Host $host;
162 - proxy_set_header X-Forwarded-For $remote_addr;
163 - proxy_pass http://monservice-prod.prod.infra.atilla.org/;
164 - }
165 -}
166 -{{/code}}
167 -
168 -===Création du dossier de logs===
169 -
170 -===Activation de la configuration Nginx===
171 -
172 -==Méthode plus ou moins automatique==
173 -
174 -On a un [[super projet sur GitLab>>https://gitlab.atilla.org/adminsys/nginx-config-generator]] qui permet d’effectuer les actions de la méthode manuelle de manière automatique. Ce projet est présent sur ##/root/nginx-config-generator## sur Bill, voici comment l’utiliser rapidement. En cas de besoin, référez vous au ##README.md## du projet.
175 -
176 -{{code language="shell"}}
177 -cd /root/nginx-config-generator
178 -source venv/bin/activate
179 -python nginx-config.py monservice.atilla.org monservice-prod.prod.infra.atilla.org
180 -## On vérifie que tout va bien avec la config qui a été générée
181 -nginx -t
182 -## On redémarre
183 -systemctl restart nginx
184 -{{/code}}