Modifications pour le document Mettre en place un sous-domaine

Modifié par Clément AUBIN le 2021/04/18 11:55

Depuis la version 3.12
modifié par Clément AUBIN
sur 2021/04/18 09:30
Commentaire de modification : Il n'y a aucun commentaire pour cette version
À la version 3.23
modifié par Clément AUBIN
sur 2021/04/18 10:37
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="none"}}
61 +{{code language="shell"}}
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="none"}}
69 +{{code language="shell"}}
70 70  systemctl start nginx
71 71  ## Pour vérifier que tout va bien
72 72  systemctl status nginx
... ... @@ -78,6 +78,88 @@
78 78  
79 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 + listen 80; // On écoute sur le port 80 (le port utilisé par défaut avec HTTP)
124 + server_name monservice.atilla.org; // On répond aux requêtes qui pointent vers le domaine monservice.atilla.org
125 + return 301 https://monservice.atilla.org$request_uri; // On redirige chaque requête vers son équivalent HTTPs
126 +}
127 +{{/code}}
128 +
129 +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.
130 +
131 +{{code language="nginx"}}
132 +server {
133 + listen 443 ssl http2; // On écoute sur le port 443, qui est celui par défaut pour le HTTPs. Les deux autres attributs ssl et http2 indiquent :
134 + // * Qu'on va chiffrer la connexion avec SSL (le principe du HTTPs)
135 + // * Qu'on supporte le protocole HTTP/2
136 +
137 + server_name monservice.atilla.org; // Comme avant, on répond aux requêtes qui pointent vers le domaine monservice.atilla.org
138 +
139 + // On indique encore une fois qu'on va utiliser le SSL, et on fournit les fichiers qui sont nécessaires pour authentifier le serveur et chiffrer la connexion.
140 + ssl on;
141 + ssl_certificate_key /etc/letsencrypt/live/monservice.atilla.org/privkey.pem;
142 + ssl_trusted_certificate /etc/letsencrypt/live/monservice.atilla.org/chain.pem;
143 + ssl_certificate /etc/letsencrypt/live/monservice.atilla.org/fullchain.pem;
144 +
145 + // On configure l'emplacement des logs
146 + access_log /var/log/nginx/monservice.atilla.org/access.log;
147 + error_log /var/log/nginx/monservice.atilla.org/error.log;
148 +
149 + location / {
150 + proxy_set_header Host $host;
151 + proxy_set_header X-Forwarded-For $remote_addr;
152 + proxy_pass http://monservice-prod.prod.infra.atilla.org/;
153 + }
154 +}
155 +{{/code}}
156 +
157 +
158 +
159 +===Création du dossier de logs===
160 +
161 +===Activation de la configuration Nginx===
162 +
81 81  ==Méthode plus ou moins automatique==
82 82  
83 83  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.