<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://travaux.indse.be/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Xantin.preser%40indse.be</id>
	<title>TravauxIndse - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://travaux.indse.be/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Xantin.preser%40indse.be"/>
	<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Sp%C3%A9cial:Contributions/Xantin.preser@indse.be"/>
	<updated>2026-05-10T16:26:17Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Id%C3%A9es_de_projet_et_outils_possibles&amp;diff=18425</id>
		<title>Idées de projet et outils possibles</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Id%C3%A9es_de_projet_et_outils_possibles&amp;diff=18425"/>
		<updated>2019-05-21T11:27:38Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Internet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Trouver un programme ==&lt;br /&gt;
Pour trouver un programme, il faut savoir sur quoi il va fonctionner. Par exemple, Windows 7 32 bits ou Linux 64 bits... Commencez par vous renseigner là dessus.&lt;br /&gt;
&lt;br /&gt;
Il y a ensuite les licences à comprendre, par exemple la différence entre logiciel propriétaire, logiciel libre, shareware (partagiciel), etc.&lt;br /&gt;
&lt;br /&gt;
Il faut enfin &amp;quot;trouver le bon&amp;quot; : &lt;br /&gt;
* Si vous en connaissez un, mais qu'il ne &amp;quot;va pas&amp;quot; sur votre ordinateur, ou qu'il est trop cher, vous pouvez utiliser un [https://alternativeto.net/ site qui présente des alternatives], &lt;br /&gt;
* Il y a aussi des annuaires de logiciels, &lt;br /&gt;
** Pour les [https://framalibre.org/ logiciels libres] par exemple.&lt;br /&gt;
&lt;br /&gt;
== Concepts de base : codage, unités de mesure... ==&lt;br /&gt;
* [https://www.cybersimple.be/fr/pr%C3%AAt-%C3%A0-tester-vos-connaissances Êtes-vous prêts pour ne pas vous faire pirater ? ]&lt;br /&gt;
* [https://www.fondation-lamap.org/fr/123codez 1, 2, 3... codez] pour apprendre les bases, y compris de la programmation&lt;br /&gt;
* [http://incoweb.playbac.fr/indexhtml.php5?livret=72 Gérer sa vie privée]&lt;br /&gt;
* [https://www.youtube.com/watch?v=gftrFKqtUlU Introduction aux droits &amp;quot;différents à l'heure d'Internet&amp;quot; possibles : les Créative Commons, c'est quoi]&lt;br /&gt;
* [https://pix.fr/ Évaluez votre niveau général en compétences informatique avec PIX.fr]&lt;br /&gt;
=== Codage ===&lt;br /&gt;
* [https://codemoji.org/#/encrypt Chiffrement (cryptage) via des emoji]&lt;br /&gt;
&lt;br /&gt;
=== [[Dactylographie]] ===&lt;br /&gt;
Savoir taper &amp;quot;rapidement&amp;quot;, et pour ça, il faut apprendre &amp;quot;à la dure&amp;quot;, à taper avec 10 doigts.&lt;br /&gt;
&lt;br /&gt;
C'est pénible au début, mais très pratique à terme. L'idéal est d'en faire un peu tous les jours.&lt;br /&gt;
* [https://www.typingstudy.com/fr/ Typing Study (à l'ancienne)]&lt;br /&gt;
* [https://www.sense-lang.org/typing/tutor/sttestFR.php?lesson=1&amp;amp;key=french Sense Lang]&lt;br /&gt;
* [https://10fastfingers.com/typing-test/french# 10 fast fingers : des mots directement]&lt;br /&gt;
* [https://www.dactylocours.com/ Dactylo Cours (il faut s'enregistrer)]&lt;br /&gt;
* [https://sourceforge.net/projects/tuxtype/ Un jeu à installer sur l'ordi]&lt;br /&gt;
&lt;br /&gt;
== Travail en groupe ==&lt;br /&gt;
* Les [https://drive.google.com/drive/u/0/ outils google] peuvent être une bonne base, &lt;br /&gt;
* Un [https://wbo.openode.io/ tableau blanc partageable], pour noter rapidement les idées,&lt;br /&gt;
* [https://bigbluebutton.org/ BigBlueButton], un [http://www.profweb.ca/publications/outils-numeriques/bigbluebutton-un-outil-de-visioconference-educationnelle-libre outil de visioconférence libre, pour l'éducation], peut-être à installer, je vous laisse tester/commenter/critiquer constructivement :-)&lt;br /&gt;
&lt;br /&gt;
== Matériel informatique ==&lt;br /&gt;
* Ordinateurs&lt;br /&gt;
** [https://cours-informatique-gratuit.fr/cours/le-materiel-informatique/ Apprendre les bases du materiel informatique]&lt;br /&gt;
** Pour avoir des infos pour [https://drive.google.com/file/d/1c7vCiMZNpyzfOSb-kUgjLlmGaUQ9sXa-/view nettoyer sa tour et son clavier (mécanique)] et [http://pratique.leparisien.fr/conseils-high-tech/audio/casque-ecouteurs-oreillettes/comment-utiliser-et-entretenir-votre-casque-ecouteur-oreillette-1350005039#xtref=https%3A%2F%2Fwww.google.be%2F:pour son casque ou écouteur]&lt;br /&gt;
* Réseau&lt;br /&gt;
** [[ Nano-ordinateur de type Raspberry ]]&lt;br /&gt;
* [[ Rénovation d'un local informatique ]]&lt;br /&gt;
* matériel divers.&lt;br /&gt;
** [[utilité d'ouvrir, de comprendre voir de faire fonctionner des appareils obsolete.]]&lt;br /&gt;
== Bureautique ==&lt;br /&gt;
* [https://www.jujens.eu/posts/2013/Dec/02/tuto_LibreOffice_Writer_basique/ En quoi un traitement de texte sert à faire autre chose que mettre en gras, en italique et en souligné, avec plein d'espaces (bases en texte)]&lt;br /&gt;
* [https://blogs.lyceecfadumene.fr/informatique/les-fiches-du-cours/les-fiches-dopenoffice-org-texte/ Éléments avancés de traitement de texte]&lt;br /&gt;
* Il y a également la [https://wiki.documentfoundation.org/Documentation/fr documentation officielle de LibreOffice], avec en particulier les [https://wiki.documentfoundation.org/Faq/fr Questions Fréquemment Posées (FAQ)], les [https://wiki.documentfoundation.org/FR/La_documentation_de_l%27utilisateur#Les_tutoriels_ou_How-to Tutoriels] et des [https://wiki.documentfoundation.org/Videos/fr vidéos]&lt;br /&gt;
&lt;br /&gt;
== Internet ==&lt;br /&gt;
=== Réseaux sociaux ===&lt;br /&gt;
* [https://mobile.lemonde.fr/pixels/article/2018/04/24/comment-les-reseaux-sociaux-accentuent-l-enfermement-dans-ses-idees_5289874_4408996.html?xtref=https://www.google.com Lecture : Comment les réseaux sociaux accentuent l'enfermement dans ses idées]&lt;br /&gt;
&lt;br /&gt;
=== Gestion de serveur Web ===&lt;br /&gt;
*[[Créer et configurer un serveur web sur Gnu-Linux]]&lt;br /&gt;
&lt;br /&gt;
== Multimédia ==&lt;br /&gt;
=== Manipulation d'images ===&lt;br /&gt;
*[[Gimp]]&lt;br /&gt;
*[[Le Mapping]]&lt;br /&gt;
Logiciels intéressants : &lt;br /&gt;
* [https://www.gimp.org/ Gimp], le &amp;quot;photoshop libre&amp;quot;&lt;br /&gt;
* [https://www.photopea.com/ Photopea], un &amp;quot;photoshop en ligne&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Se créer un avatar ===&lt;br /&gt;
Pour ne pas mettre &amp;quot;sa tête&amp;quot; directement sur Internet, il est possible de se créer une image &amp;quot;avatar&amp;quot; (certains sites deviennent vieux mais fonctionnent toujours... Comme toujours sur Internet, tout peut bouger tout le temps... Corrigez ce wiki si besoin) : &lt;br /&gt;
* [https://www.editions-delcourt.fr/bouletmaton/ Le &amp;quot;Bouletmaton&amp;quot;]‑ via le [http://www.bouletcorp.com/ dessinateur de BouletCorp]&lt;br /&gt;
* [https://www.blogdumoderateur.com/creer-son-avatar-lego-block-head-iconizer/ En &amp;quot;Lego&amp;quot; (et autres)]&lt;br /&gt;
* [http://roget.biz/8-sites-pour-creer-son-avatar-en-ligne Une &amp;quot;vieille liste&amp;quot;, n'hésitez pas à en re-créer une ici à la place]&lt;br /&gt;
&lt;br /&gt;
=== Montage vidéo ===&lt;br /&gt;
* [[Montage vidéo aide]]&lt;br /&gt;
** [[Travailler avec Windows Movie Maker]]&lt;br /&gt;
* [[Bonnes pratiques et erreurs à éviter pour la réalisation d'un film]]&lt;br /&gt;
** [[Bonnes pratiques pour un projet vidéo]] (intégrer le contenu de cette page avec la page ci-dessus ?)&lt;br /&gt;
* [[Projets de montages vidéo]]&lt;br /&gt;
* Outils de montage vidéo en ligne&lt;br /&gt;
** [https://outilstice.com/2018/03/kapwing-un-editeur-video-en-ligne-a-tout-faire/ Kapwing], &lt;br /&gt;
* Il est aussi possible de faire des screencasts (enregistrer votre écran et éventuellement votre webcam)&lt;br /&gt;
** [https://outilstice.com/2019/01/5-outils-pour-realiser-des-screencasts-gratuits/ 5 outils de screencasts (2019)]&lt;br /&gt;
* [[ Comment réaliser un court métrage ]]&lt;br /&gt;
*[[Stop motion]]&lt;br /&gt;
**[https://fr.wikipedia.org/wiki/Animation_en_volume Wikipédia : Animation en volume]&lt;br /&gt;
&lt;br /&gt;
=== Création d'une BD ===&lt;br /&gt;
* [https://www.clipstudio.net/fr/ Clip Studio Paint]&lt;br /&gt;
&lt;br /&gt;
== Créer des dessins animés ==&lt;br /&gt;
* [https://www.powtoon.com/home/? PowToon]&lt;br /&gt;
* [https://www.moovly.com/ Moovly] [[Utiliser Moovly]]&lt;br /&gt;
* [https://scratch.mit.edu/ Scratch]&lt;br /&gt;
* [https://www.renderforest.com/ Renderforest] [https://drive.google.com/open?id=1muhioZsnEx3aHqyHVUHuuswnSIvprLLn (ma réalisation)]&lt;br /&gt;
* [https://explee.com/fr/build/qjbmr Explee]&lt;br /&gt;
* [https://www.mysimpleshow.com/ Simple Show]&lt;br /&gt;
* [https://toontastic.withgoogle.com/ ToonTastic]&lt;br /&gt;
&lt;br /&gt;
== Électronique ==&lt;br /&gt;
* [https://zestedesavoir.com/tutoriels/686/arduino-premiers-pas-en-informatique-embarquee/ Premiers pas avec Arduino]&lt;br /&gt;
&lt;br /&gt;
== Programmation ==&lt;br /&gt;
* [https://code.org/ Apprendre depuis 0 à n'importe quel age avec Code.org]&lt;br /&gt;
* [http://fr.khanacademy.org/ Apprendre pas à pas avec KhanAcademy]&lt;br /&gt;
* [https://www.magicmakers.fr/scratch-2-scratch-online-tutoriels Apprendre avec Scratch, un logiciel plus graphique]&lt;br /&gt;
* [https://www.fun-mooc.fr/courses/course-v1:ulb+44013+session01/about?fbclid=IwAR2rEwGFN6Z78ruJbp2J-ZkAe2I9obGA0w6gVv9j9y0glqXN4CF3fih8rkU Un Mooc sur Python]&lt;br /&gt;
* [[Créer un jeu vidéo]]&lt;br /&gt;
== Gestion des données (Big Data) ==&lt;br /&gt;
* [https://datastudio.google.com/ Outil Google de visualisation de données]&lt;br /&gt;
* [https://www.fun-mooc.fr/courses/course-v1:UPSUD+42001+session10/info Mooc de visualisation de données (statistiques) avec le programme R].&lt;br /&gt;
&lt;br /&gt;
== Modélisation 3D ==&lt;br /&gt;
=== Architecture ===&lt;br /&gt;
* [https://www.kozikaza.com/ Kozikaza]&lt;br /&gt;
* [https://www.arch-image.com/sketchup-logiciel/ Sketchup]&lt;br /&gt;
&lt;br /&gt;
== Faire de la recherche ==&lt;br /&gt;
* [[Rechercher de la musique]]&lt;br /&gt;
&lt;br /&gt;
== Divers ==&lt;br /&gt;
* [https://framinetest.org/ Un clone de MineCraft Libre : Minetest (via le site de Framasoft)]&lt;br /&gt;
* [https://www.humanbenchmark.com/ Testez vos compétences &amp;quot;en tant qu'être humain&amp;quot;]&lt;br /&gt;
* [https://learningapps.org/ Des leçons pour apprendre (informatique et beaucoup d'autres), avec la possibilité d'en créer soi-même]&lt;br /&gt;
* [https://blogs.lyceecfadumene.fr/informatique/ De nombreuses ressources faites par un professeur français]&lt;br /&gt;
* [https://www.youtube.com/channel/UC8LjbUEjgITV1AZ2Xr3pOaA Des cours pour des enseignants suisses (Genève)], il peut y avoir des sujets intéressants pour vous&lt;br /&gt;
* Nous avons parlé de [[Logiciels libres]]. Les élèves ont noté ce qui les ont intéressé et des questions sur papier et nous faisons une synthèses sur cette page.&lt;br /&gt;
* Avec une classe, nous avons vu [[Blender]].&lt;br /&gt;
* Un élève a également fait un [[Résumé du cours sur Gimp]]&lt;br /&gt;
* Utilisation d'outils plus spécifiques&lt;br /&gt;
** [https://data.gov.be Données libres &amp;quot;OpenData&amp;quot; sur la belgique], à utiliser avec des outils spécifiques (encore à trouver)&lt;br /&gt;
** [https://www.europeandataportal.eu/fr/homepage Données libres &amp;quot;OpenData&amp;quot; en europe]&lt;br /&gt;
* [https://www.my-mooc.com/fr/mooc/introduction-a-la-statistique-avec-r/ Faire des stats avec R un logiciel permettant de visualiser plein de choses]&lt;br /&gt;
&lt;br /&gt;
== Autres matières==&lt;br /&gt;
* Les [[génocides à travers l'histoire]]&lt;br /&gt;
&lt;br /&gt;
== Travaux années précédentes ==&lt;br /&gt;
[[Sécurité informatique]]&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18418</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18418"/>
		<updated>2019-05-21T11:14:30Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Vérifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) : &amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns.sh : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns.sh &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez changé les différents paramètres, vous pouvez sauvegarder votre fichier et quitter l'édition.&lt;br /&gt;
Il va maintenant falloir modifier les autorisations du fichier. Pour cela, changez de répertoire afin de revenir afin de revenir au /home de votre raspberry&lt;br /&gt;
&amp;lt;pre&amp;gt; cd &amp;lt;/pre&amp;gt;&lt;br /&gt;
Après avoir changé de répertoire autoriser le fichier que vous avez créer :&lt;br /&gt;
&amp;lt;pre&amp;gt; chmod +x /cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant lancer le script en l'exécutant :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo cf/cloudflaredydns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si tout fonctionne bien dans votre fichier cf, il devait y avoir 3 nouveaux fichiers : cloudflare.ids cloudflare.log et ip.txt&lt;br /&gt;
Et votre ip sur cloudflare devrait être actualisée.&lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
Puisque, normalement, example.localhost redirige toutes les connexions vers votre serveur, vous pouvez utilisez Let's Encrypt. &lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais le script ne le fait que lorsque vous l'exécuter, alors comment faire ? Il suffit de dire au raspberry de lancer le script à intervalle régulier, pour cela, il suffit d'utiliser cron qui est un programme qui permet d'exécuter des scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo crontab -e &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il vous suffit d'ajouter une ligne pour lancer le script à l'intervalle que vous souhaitez :&lt;br /&gt;
&lt;br /&gt;
Voici un exemple pour 1 fois toutes les 15 minutes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; */15 * * * * /bin/bash /home/pi/cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Vous pouvez le modifier comme vous voulez&lt;br /&gt;
&lt;br /&gt;
Chaque étoile représente, dans l'ordre : les minutes, les heures, les jours, les mois et les années.&lt;br /&gt;
&lt;br /&gt;
Le fait de mettre une étoile signifie que ça prend tout donc toutes les minutes, heures,...&lt;br /&gt;
&lt;br /&gt;
Et le /15 indique que toutes (*) les 15 minutes (/15) vous exécutez ce qui est mis après.&lt;br /&gt;
&lt;br /&gt;
== Vérifications ==&lt;br /&gt;
Votre serveur web est maintenant fonctionnel et actualise son ip automatiquement, vous pouvez donc vous y connecter quand vous le voulez (Il est possible que votre ip change après l'exécution du script, dans le pire des cas il faudra attendre le temps d'intervalle que vous avez déterminé moins 1 seconde.&lt;br /&gt;
Il ne vous reste plus qu'à vérifier si l'ip s'actualise bien et ce automatiquement, mais puisque l'ip change de manière aléatoire, essayez de redémarrer votre box (ça peut faire changer l'ip) ou attendez (mais ça peut prendre du temps).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voilà, votre serveur web est maintenant terminé, vous pouvez l'utiliser comme un hébergeur pour un site web en modifiant la page que vous aviez créé pour les tests ou en ajoutant de nouvelles pages.&lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;br /&gt;
&lt;br /&gt;
Création serveur web : https://linuxconfig.org/install-apache-on-ubuntu-18-04-bionic-beaver-linux&lt;br /&gt;
&lt;br /&gt;
Certificat auto-signé Let's Encrypt : https://certbot.eff.org/lets-encrypt/debianstretch-apache&lt;br /&gt;
&lt;br /&gt;
Script d'actualisation d'ip : https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Fonctionnement de crontab : https://www.linuxtricks.fr/wiki/cron-et-crontab-le-planificateur-de-taches&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18348</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18348"/>
		<updated>2019-05-15T12:25:40Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) : &amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns.sh : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns.sh &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez changé les différents paramètres, vous pouvez sauvegarder votre fichier et quitter l'édition.&lt;br /&gt;
Il va maintenant falloir modifier les autorisations du fichier. Pour cela, changez de répertoire afin de revenir afin de revenir au /home de votre raspberry&lt;br /&gt;
&amp;lt;pre&amp;gt; cd &amp;lt;/pre&amp;gt;&lt;br /&gt;
Après avoir changé de répertoire autoriser le fichier que vous avez créer :&lt;br /&gt;
&amp;lt;pre&amp;gt; chmod +x /cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant lancer le script en l'exécutant :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo cf/cloudflaredydns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si tout fonctionne bien dans votre fichier cf, il devait y avoir 3 nouveaux fichiers : cloudflare.ids cloudflare.log et ip.txt&lt;br /&gt;
Et votre ip sur cloudflare devrait être actualisée.&lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
Puisque, normalement, example.localhost redirige toutes les connexions vers votre serveur, vous pouvez utilisez Let's Encrypt. &lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais le script ne le fait que lorsque vous l'exécuter, alors comment faire ? Il suffit de dire au raspberry de lancer le script à intervalle régulier, pour cela, il suffit d'utiliser cron qui est un programme qui permet d'exécuter des scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo crontab -e &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il vous suffit d'ajouter une ligne pour lancer le script à l'intervalle que vous souhaitez :&lt;br /&gt;
&lt;br /&gt;
Voici un exemple pour 1 fois toutes les 15 minutes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; */15 * * * * /bin/bash /home/pi/cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Vous pouvez le modifier comme vous voulez&lt;br /&gt;
&lt;br /&gt;
Chaque étoile représente, dans l'ordre : les minutes, les heures, les jours, les mois et les années.&lt;br /&gt;
&lt;br /&gt;
Le fait de mettre une étoile signifie que ça prend tout donc toutes les minutes, heures,...&lt;br /&gt;
&lt;br /&gt;
Et le /15 indique que toutes (*) les 15 minutes (/15) vous exécutez ce qui est mis après.&lt;br /&gt;
&lt;br /&gt;
== Vérifications ==&lt;br /&gt;
Votre serveur web est maintenant fonctionnel et actualise son ip automatiquement, vous pouvez donc vous y connecter quand vous le voulez (Il est possible que votre ip change après l'exécution du script, dans le pire des cas il faudra attendre le temps d'intervalle que vous avez déterminé moins 1 seconde.&lt;br /&gt;
Il ne vous reste plus qu'à vérifier si l'ip s'actualise bien et ce automatiquement, mais puisque l'ip change de manière aléatoire, essayez de redémarrer votre box (ça peut faire changer l'ip) ou attendez (mais ça peut prendre du temps).&lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;br /&gt;
&lt;br /&gt;
Création serveur web : https://linuxconfig.org/install-apache-on-ubuntu-18-04-bionic-beaver-linux&lt;br /&gt;
&lt;br /&gt;
Certificat auto-signé Let's Encrypt : https://certbot.eff.org/lets-encrypt/debianstretch-apache&lt;br /&gt;
&lt;br /&gt;
Script d'actualisation d'ip : https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Fonctionnement de crontab : https://www.linuxtricks.fr/wiki/cron-et-crontab-le-planificateur-de-taches&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18347</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18347"/>
		<updated>2019-05-15T12:24:59Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Lancement au démarrage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) : &amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns.sh : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns.sh &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez changé les différents paramètres, vous pouvez sauvegarder votre fichier et quitter l'édition.&lt;br /&gt;
Il va maintenant falloir modifier les autorisations du fichier. Pour cela, changez de répertoire afin de revenir afin de revenir au /home de votre raspberry&lt;br /&gt;
&amp;lt;pre&amp;gt; cd &amp;lt;/pre&amp;gt;&lt;br /&gt;
Après avoir changé de répertoire autoriser le fichier que vous avez créer :&lt;br /&gt;
&amp;lt;pre&amp;gt; chmod +x /cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant lancer le script en l'exécutant :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo cf/cloudflaredydns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si tout fonctionne bien dans votre fichier cf, il devait y avoir 3 nouveaux fichiers : cloudflare.ids cloudflare.log et ip.txt&lt;br /&gt;
Et votre ip sur cloudflare devrait être actualisée.&lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
Puisque, normalement, example.localhost redirige toutes les connexions vers votre serveur, vous pouvez utilisez Let's Encrypt. &lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais le script ne le fait que lorsque vous l'exécuter, alors comment faire ? Il suffit de dire au raspberry de lancer le script à intervalle régulier, pour cela, il suffit d'utiliser cron qui est un programme qui permet d'exécuter des scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo crontab -e &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il vous suffit d'ajouter une ligne pour lancer le script à l'intervalle que vous souhaitez :&lt;br /&gt;
&lt;br /&gt;
Voici un exemple pour 1 fois toutes les 15 minutes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; */15 * * * * /bin/bash /home/pi/cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Vous pouvez le modifier comme vous voulez&lt;br /&gt;
&lt;br /&gt;
Chaque étoile représente, dans l'ordre : les minutes, les heures, les jours, les mois et les années.&lt;br /&gt;
&lt;br /&gt;
Le fait de mettre une étoile signifie que ça prend tout donc toutes les minutes, heures,...&lt;br /&gt;
&lt;br /&gt;
Et le /15 indique que toutes (*) les 15 minutes (/15) vous exécutez ce qui est mis après.&lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;br /&gt;
&lt;br /&gt;
Création serveur web : https://linuxconfig.org/install-apache-on-ubuntu-18-04-bionic-beaver-linux&lt;br /&gt;
&lt;br /&gt;
Certificat auto-signé Let's Encrypt : https://certbot.eff.org/lets-encrypt/debianstretch-apache&lt;br /&gt;
&lt;br /&gt;
Script d'actualisation d'ip : https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Fonctionnement de crontab : https://www.linuxtricks.fr/wiki/cron-et-crontab-le-planificateur-de-taches&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18346</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18346"/>
		<updated>2019-05-15T12:23:28Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Sources : */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) : &amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns.sh : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns.sh &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez changé les différents paramètres, vous pouvez sauvegarder votre fichier et quitter l'édition.&lt;br /&gt;
Il va maintenant falloir modifier les autorisations du fichier. Pour cela, changez de répertoire afin de revenir afin de revenir au /home de votre raspberry&lt;br /&gt;
&amp;lt;pre&amp;gt; cd &amp;lt;/pre&amp;gt;&lt;br /&gt;
Après avoir changé de répertoire autoriser le fichier que vous avez créer :&lt;br /&gt;
&amp;lt;pre&amp;gt; chmod +x /cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant lancer le script en l'exécutant :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo cf/cloudflaredydns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si tout fonctionne bien dans votre fichier cf, il devait y avoir 3 nouveaux fichiers : cloudflare.ids cloudflare.log et ip.txt&lt;br /&gt;
Et votre ip sur cloudflare devrait être actualisée.&lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
Puisque, normalement, example.localhost redirige toutes les connexions vers votre serveur, vous pouvez utilisez Let's Encrypt. &lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais le script ne le fait que lorsque vous l'exécuter, alors comment faire ? Il suffit de dire au raspberry de lancer le script à intervalle régulier, pour cela, il suffit d'utiliser cron qui est un programme qui permet d'exécuter des scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo crontab -e &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il vous suffit d'ajouter une ligne pour lancer le script à l'intervalle que vous souhaitez :&lt;br /&gt;
&lt;br /&gt;
Voici un exemple pour 1 fois toutes les 15 minutes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; */15 * * * * /bin/bash /home/pi/cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Vous pouvez le modifier comme vous voulez&lt;br /&gt;
&lt;br /&gt;
Chaque étoile représente, dans l'ordre : les minutes, les heures, les jours, les mois et les années.&lt;br /&gt;
&lt;br /&gt;
Le fait de mettre une étoile signifie que ça prend tout donc toutes les minutes, heures,...&lt;br /&gt;
&lt;br /&gt;
Et le /15 indique que toutes (*) les 15 minutes (/15) vous exécutez ce qui est mis après.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vérifications ===&lt;br /&gt;
Votre serveur web est maintenant fonctionnel et actualise son ip automatiquement, vous pouvez donc vous y connecter quand vous le voulez (Il est possible que votre ip change après l'exécution du script, dans le pire des cas il faudra attendre le temps d'intervalle que vous avez déterminé moins 1 seconde.&lt;br /&gt;
Il ne vous reste plus qu'à vérifier si l'ip s'actualise bien et ce automatiquement, mais puisque l'ip change de manière aléatoire, essayez de redémarrer votre box (ça peut faire changer l'ip) ou attendez (mais ça peut prendre du temps).&lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;br /&gt;
&lt;br /&gt;
Création serveur web : https://linuxconfig.org/install-apache-on-ubuntu-18-04-bionic-beaver-linux&lt;br /&gt;
&lt;br /&gt;
Certificat auto-signé Let's Encrypt : https://certbot.eff.org/lets-encrypt/debianstretch-apache&lt;br /&gt;
&lt;br /&gt;
Script d'actualisation d'ip : https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Fonctionnement de crontab : https://www.linuxtricks.fr/wiki/cron-et-crontab-le-planificateur-de-taches&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18345</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18345"/>
		<updated>2019-05-15T11:54:45Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) : &amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns.sh : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns.sh &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez changé les différents paramètres, vous pouvez sauvegarder votre fichier et quitter l'édition.&lt;br /&gt;
Il va maintenant falloir modifier les autorisations du fichier. Pour cela, changez de répertoire afin de revenir afin de revenir au /home de votre raspberry&lt;br /&gt;
&amp;lt;pre&amp;gt; cd &amp;lt;/pre&amp;gt;&lt;br /&gt;
Après avoir changé de répertoire autoriser le fichier que vous avez créer :&lt;br /&gt;
&amp;lt;pre&amp;gt; chmod +x /cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant lancer le script en l'exécutant :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo cf/cloudflaredydns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si tout fonctionne bien dans votre fichier cf, il devait y avoir 3 nouveaux fichiers : cloudflare.ids cloudflare.log et ip.txt&lt;br /&gt;
Et votre ip sur cloudflare devrait être actualisée.&lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
Puisque, normalement, example.localhost redirige toutes les connexions vers votre serveur, vous pouvez utilisez Let's Encrypt. &lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais le script ne le fait que lorsque vous l'exécuter, alors comment faire ? Il suffit de dire au raspberry de lancer le script à intervalle régulier, pour cela, il suffit d'utiliser cron qui est un programme qui permet d'exécuter des scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo crontab -e &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il vous suffit d'ajouter une ligne pour lancer le script à l'intervalle que vous souhaitez :&lt;br /&gt;
&lt;br /&gt;
Voici un exemple pour 1 fois toutes les 15 minutes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; */15 * * * * /bin/bash /home/pi/cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Vous pouvez le modifier comme vous voulez&lt;br /&gt;
&lt;br /&gt;
Chaque étoile représente, dans l'ordre : les minutes, les heures, les jours, les mois et les années.&lt;br /&gt;
&lt;br /&gt;
Le fait de mettre une étoile signifie que ça prend tout donc toutes les minutes, heures,...&lt;br /&gt;
&lt;br /&gt;
Et le /15 indique que toutes (*) les 15 minutes (/15) vous exécutez ce qui est mis après.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vérifications ===&lt;br /&gt;
Votre serveur web est maintenant fonctionnel et actualise son ip automatiquement, vous pouvez donc vous y connecter quand vous le voulez (Il est possible que votre ip change après l'exécution du script, dans le pire des cas il faudra attendre le temps d'intervalle que vous avez déterminé moins 1 seconde.&lt;br /&gt;
Il ne vous reste plus qu'à vérifier si l'ip s'actualise bien et ce automatiquement, mais puisque l'ip change de manière aléatoire, essayez de redémarrer votre box (ça peut faire changer l'ip) ou attendez (mais ça peut prendre du temps).&lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;br /&gt;
&lt;br /&gt;
Création serveur web : https://linuxconfig.org/install-apache-on-ubuntu-18-04-bionic-beaver-linux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script d'actualisation d'ip : https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Fonctionnement de crontab : https://www.linuxtricks.fr/wiki/cron-et-crontab-le-planificateur-de-taches&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18344</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18344"/>
		<updated>2019-05-15T11:54:18Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) : &amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns.sh : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns.sh &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredyndns.sf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez changé les différents paramètres, vous pouvez sauvegarder votre fichier et quitter l'édition.&lt;br /&gt;
Il va maintenant falloir modifier les autorisations du fichier. Pour cela, changez de répertoire afin de revenir afin de revenir au /home de votre raspberry&lt;br /&gt;
&amp;lt;pre&amp;gt; cd &amp;lt;/pre&amp;gt;&lt;br /&gt;
Après avoir changé de répertoire autoriser le fichier que vous avez créer :&lt;br /&gt;
&amp;lt;pre&amp;gt; chmod +x /cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant lancer le script en l'exécutant :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo cf/cloudflaredydns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si tout fonctionne bien dans votre fichier cf, il devait y avoir 3 nouveaux fichiers : cloudflare.ids cloudflare.log et ip.txt&lt;br /&gt;
Et votre ip sur cloudflare devrait être actualisée.&lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
Puisque, normalement, example.localhost redirige toutes les connexions vers votre serveur, vous pouvez utilisez Let's Encrypt. &lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais le script ne le fait que lorsque vous l'exécuter, alors comment faire ? Il suffit de dire au raspberry de lancer le script à intervalle régulier, pour cela, il suffit d'utiliser cron qui est un programme qui permet d'exécuter des scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo crontab -e &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il vous suffit d'ajouter une ligne pour lancer le script à l'intervalle que vous souhaitez :&lt;br /&gt;
&lt;br /&gt;
Voici un exemple pour 1 fois toutes les 15 minutes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; */15 * * * * /bin/bash /home/pi/cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Vous pouvez le modifier comme vous voulez&lt;br /&gt;
&lt;br /&gt;
Chaque étoile représente, dans l'ordre : les minutes, les heures, les jours, les mois et les années.&lt;br /&gt;
&lt;br /&gt;
Le fait de mettre une étoile signifie que ça prend tout donc toutes les minutes, heures,...&lt;br /&gt;
&lt;br /&gt;
Et le /15 indique que toutes (*) les 15 minutes (/15) vous exécutez ce qui est mis après.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vérifications ===&lt;br /&gt;
Votre serveur web est maintenant fonctionnel et actualise son ip automatiquement, vous pouvez donc vous y connecter quand vous le voulez (Il est possible que votre ip change après l'exécution du script, dans le pire des cas il faudra attendre le temps d'intervalle que vous avez déterminé moins 1 seconde.&lt;br /&gt;
Il ne vous reste plus qu'à vérifier si l'ip s'actualise bien et ce automatiquement, mais puisque l'ip change de manière aléatoire, essayez de redémarrer votre box (ça peut faire changer l'ip) ou attendez (mais ça peut prendre du temps).&lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;br /&gt;
&lt;br /&gt;
Création serveur web : https://linuxconfig.org/install-apache-on-ubuntu-18-04-bionic-beaver-linux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script d'actualisation d'ip : https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Fonctionnement de crontab : https://www.linuxtricks.fr/wiki/cron-et-crontab-le-planificateur-de-taches&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18343</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18343"/>
		<updated>2019-05-15T11:54:05Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) :&lt;br /&gt;
   &amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns.sh : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns.sh &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredyndns.sf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez changé les différents paramètres, vous pouvez sauvegarder votre fichier et quitter l'édition.&lt;br /&gt;
Il va maintenant falloir modifier les autorisations du fichier. Pour cela, changez de répertoire afin de revenir afin de revenir au /home de votre raspberry&lt;br /&gt;
&amp;lt;pre&amp;gt; cd &amp;lt;/pre&amp;gt;&lt;br /&gt;
Après avoir changé de répertoire autoriser le fichier que vous avez créer :&lt;br /&gt;
&amp;lt;pre&amp;gt; chmod +x /cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant lancer le script en l'exécutant :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo cf/cloudflaredydns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si tout fonctionne bien dans votre fichier cf, il devait y avoir 3 nouveaux fichiers : cloudflare.ids cloudflare.log et ip.txt&lt;br /&gt;
Et votre ip sur cloudflare devrait être actualisée.&lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
Puisque, normalement, example.localhost redirige toutes les connexions vers votre serveur, vous pouvez utilisez Let's Encrypt. &lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais le script ne le fait que lorsque vous l'exécuter, alors comment faire ? Il suffit de dire au raspberry de lancer le script à intervalle régulier, pour cela, il suffit d'utiliser cron qui est un programme qui permet d'exécuter des scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo crontab -e &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il vous suffit d'ajouter une ligne pour lancer le script à l'intervalle que vous souhaitez :&lt;br /&gt;
&lt;br /&gt;
Voici un exemple pour 1 fois toutes les 15 minutes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; */15 * * * * /bin/bash /home/pi/cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Vous pouvez le modifier comme vous voulez&lt;br /&gt;
&lt;br /&gt;
Chaque étoile représente, dans l'ordre : les minutes, les heures, les jours, les mois et les années.&lt;br /&gt;
&lt;br /&gt;
Le fait de mettre une étoile signifie que ça prend tout donc toutes les minutes, heures,...&lt;br /&gt;
&lt;br /&gt;
Et le /15 indique que toutes (*) les 15 minutes (/15) vous exécutez ce qui est mis après.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vérifications ===&lt;br /&gt;
Votre serveur web est maintenant fonctionnel et actualise son ip automatiquement, vous pouvez donc vous y connecter quand vous le voulez (Il est possible que votre ip change après l'exécution du script, dans le pire des cas il faudra attendre le temps d'intervalle que vous avez déterminé moins 1 seconde.&lt;br /&gt;
Il ne vous reste plus qu'à vérifier si l'ip s'actualise bien et ce automatiquement, mais puisque l'ip change de manière aléatoire, essayez de redémarrer votre box (ça peut faire changer l'ip) ou attendez (mais ça peut prendre du temps).&lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;br /&gt;
&lt;br /&gt;
Création serveur web : https://linuxconfig.org/install-apache-on-ubuntu-18-04-bionic-beaver-linux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script d'actualisation d'ip : https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Fonctionnement de crontab : https://www.linuxtricks.fr/wiki/cron-et-crontab-le-planificateur-de-taches&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18342</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18342"/>
		<updated>2019-05-15T11:53:34Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Sources : */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) :&lt;br /&gt;
&amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns.sh : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns.sh &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredyndns.sf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez changé les différents paramètres, vous pouvez sauvegarder votre fichier et quitter l'édition.&lt;br /&gt;
Il va maintenant falloir modifier les autorisations du fichier. Pour cela, changez de répertoire afin de revenir afin de revenir au /home de votre raspberry&lt;br /&gt;
&amp;lt;pre&amp;gt; cd &amp;lt;/pre&amp;gt;&lt;br /&gt;
Après avoir changé de répertoire autoriser le fichier que vous avez créer :&lt;br /&gt;
&amp;lt;pre&amp;gt; chmod +x /cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant lancer le script en l'exécutant :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo cf/cloudflaredydns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si tout fonctionne bien dans votre fichier cf, il devait y avoir 3 nouveaux fichiers : cloudflare.ids cloudflare.log et ip.txt&lt;br /&gt;
Et votre ip sur cloudflare devrait être actualisée.&lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
Puisque, normalement, example.localhost redirige toutes les connexions vers votre serveur, vous pouvez utilisez Let's Encrypt. &lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais le script ne le fait que lorsque vous l'exécuter, alors comment faire ? Il suffit de dire au raspberry de lancer le script à intervalle régulier, pour cela, il suffit d'utiliser cron qui est un programme qui permet d'exécuter des scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo crontab -e &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il vous suffit d'ajouter une ligne pour lancer le script à l'intervalle que vous souhaitez :&lt;br /&gt;
&lt;br /&gt;
Voici un exemple pour 1 fois toutes les 15 minutes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; */15 * * * * /bin/bash /home/pi/cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Vous pouvez le modifier comme vous voulez&lt;br /&gt;
&lt;br /&gt;
Chaque étoile représente, dans l'ordre : les minutes, les heures, les jours, les mois et les années.&lt;br /&gt;
&lt;br /&gt;
Le fait de mettre une étoile signifie que ça prend tout donc toutes les minutes, heures,...&lt;br /&gt;
&lt;br /&gt;
Et le /15 indique que toutes (*) les 15 minutes (/15) vous exécutez ce qui est mis après.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vérifications ===&lt;br /&gt;
Votre serveur web est maintenant fonctionnel et actualise son ip automatiquement, vous pouvez donc vous y connecter quand vous le voulez (Il est possible que votre ip change après l'exécution du script, dans le pire des cas il faudra attendre le temps d'intervalle que vous avez déterminé moins 1 seconde.&lt;br /&gt;
Il ne vous reste plus qu'à vérifier si l'ip s'actualise bien et ce automatiquement, mais puisque l'ip change de manière aléatoire, essayez de redémarrer votre box (ça peut faire changer l'ip) ou attendez (mais ça peut prendre du temps).&lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;br /&gt;
&lt;br /&gt;
Création serveur web : https://linuxconfig.org/install-apache-on-ubuntu-18-04-bionic-beaver-linux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script d'actualisation d'ip : https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
Fonctionnement de crontab : https://www.linuxtricks.fr/wiki/cron-et-crontab-le-planificateur-de-taches&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18341</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18341"/>
		<updated>2019-05-15T11:44:29Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Votre serveur web est maintenant fonctionnel et actualise son ip automatiquement, vous pouvez donc vous y connecter quand vous le voulez (Il est possible que votre ip change après l'exécution du script, dans le pire des cas il faudra attendre...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) :&lt;br /&gt;
&amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns.sh : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns.sh &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredyndns.sf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez changé les différents paramètres, vous pouvez sauvegarder votre fichier et quitter l'édition.&lt;br /&gt;
Il va maintenant falloir modifier les autorisations du fichier. Pour cela, changez de répertoire afin de revenir afin de revenir au /home de votre raspberry&lt;br /&gt;
&amp;lt;pre&amp;gt; cd &amp;lt;/pre&amp;gt;&lt;br /&gt;
Après avoir changé de répertoire autoriser le fichier que vous avez créer :&lt;br /&gt;
&amp;lt;pre&amp;gt; chmod +x /cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant lancer le script en l'exécutant :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo cf/cloudflaredydns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si tout fonctionne bien dans votre fichier cf, il devait y avoir 3 nouveaux fichiers : cloudflare.ids cloudflare.log et ip.txt&lt;br /&gt;
Et votre ip sur cloudflare devrait être actualisée.&lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
Puisque, normalement, example.localhost redirige toutes les connexions vers votre serveur, vous pouvez utilisez Let's Encrypt. &lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais le script ne le fait que lorsque vous l'exécuter, alors comment faire ? Il suffit de dire au raspberry de lancer le script à intervalle régulier, pour cela, il suffit d'utiliser cron qui est un programme qui permet d'exécuter des scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo crontab -e &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il vous suffit d'ajouter une ligne pour lancer le script à l'intervalle que vous souhaitez :&lt;br /&gt;
&lt;br /&gt;
Voici un exemple pour 1 fois toutes les 15 minutes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; */15 * * * * /bin/bash /home/pi/cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Vous pouvez le modifier comme vous voulez&lt;br /&gt;
&lt;br /&gt;
Chaque étoile représente, dans l'ordre : les minutes, les heures, les jours, les mois et les années.&lt;br /&gt;
&lt;br /&gt;
Le fait de mettre une étoile signifie que ça prend tout donc toutes les minutes, heures,...&lt;br /&gt;
&lt;br /&gt;
Et le /15 indique que toutes (*) les 15 minutes (/15) vous exécutez ce qui est mis après.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vérifications ===&lt;br /&gt;
Votre serveur web est maintenant fonctionnel et actualise son ip automatiquement, vous pouvez donc vous y connecter quand vous le voulez (Il est possible que votre ip change après l'exécution du script, dans le pire des cas il faudra attendre le temps d'intervalle que vous avez déterminé moins 1 seconde.&lt;br /&gt;
Il ne vous reste plus qu'à vérifier si l'ip s'actualise bien et ce automatiquement, mais puisque l'ip change de manière aléatoire, essayez de redémarrer votre box (ça peut faire changer l'ip) ou attendez (mais ça peut prendre du temps).&lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18340</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18340"/>
		<updated>2019-05-15T11:33:15Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Votre serveur web est maintenant fonctionnel et actualise son ip automatiquement, vous pouvez donc vous y connecter quand vous le voulez (Il est possible que votre ip change après l'exécution du script, dans le pire des cas il faudra attendre...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) :&lt;br /&gt;
&amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns.sh : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns.sh &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredyndns.sf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez changé les différents paramètres, vous pouvez sauvegarder votre fichier et quitter l'édition.&lt;br /&gt;
Il va maintenant falloir modifier les autorisations du fichier. Pour cela, changez de répertoire afin de revenir afin de revenir au /home de votre raspberry&lt;br /&gt;
&amp;lt;pre&amp;gt; cd &amp;lt;/pre&amp;gt;&lt;br /&gt;
Après avoir changé de répertoire autoriser le fichier que vous avez créer :&lt;br /&gt;
&amp;lt;pre&amp;gt; chmod +x /cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant lancer le script en l'exécutant :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo cf/cloudflaredydns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si tout fonctionne bien dans votre fichier cf, il devait y avoir 3 nouveaux fichiers : cloudflare.ids cloudflare.log et ip.txt&lt;br /&gt;
Et votre ip sur cloudflare devrait être actualisée.&lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
Puisque, normalement, example.localhost redirige toutes les connexions vers votre serveur, vous pouvez utilisez Let's Encrypt. &lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais le script ne le fait que lorsque vous l'exécuter, alors comment faire ? Il suffit de dire au raspberry de lancer le script à intervalle régulier, pour cela, il suffit d'utiliser cron qui est un programme qui permet d'exécuter des scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo crontab -e &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il vous suffit d'ajouter une ligne pour lancer le script à l'intervalle que vous souhaitez :&lt;br /&gt;
&lt;br /&gt;
Voici un exemple pour 1 fois toutes les 15 minutes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; */15 * * * * /bin/bash /home/pi/cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Vous pouvez le modifier comme vous voulez&lt;br /&gt;
&lt;br /&gt;
Chaque étoile représente, dans l'ordre : les minutes, les heures, les jours, les mois et les années.&lt;br /&gt;
&lt;br /&gt;
Le fait de mettre une étoile signifie que ça prend tout donc toutes les minutes, heures,...&lt;br /&gt;
&lt;br /&gt;
Et le /15 indique que toutes (*) les 15 minutes (/15) vous exécutez ce qui est mis après.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Votre serveur web est maintenant fonctionnel et actualise son ip automatiquement, vous pouvez donc vous y connecter quand vous le voulez (Il est possible que votre ip change après l'exécution du script, dans le pire des cas il faudra attendre le temps d'intervalle que vous avez déterminé moins 1seconde. ===&lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18339</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18339"/>
		<updated>2019-05-15T11:32:49Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Lancement au démarrage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) :&lt;br /&gt;
&amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns.sh : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns.sh &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredyndns.sf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez changé les différents paramètres, vous pouvez sauvegarder votre fichier et quitter l'édition.&lt;br /&gt;
Il va maintenant falloir modifier les autorisations du fichier. Pour cela, changez de répertoire afin de revenir afin de revenir au /home de votre raspberry&lt;br /&gt;
&amp;lt;pre&amp;gt; cd &amp;lt;/pre&amp;gt;&lt;br /&gt;
Après avoir changé de répertoire autoriser le fichier que vous avez créer :&lt;br /&gt;
&amp;lt;pre&amp;gt; chmod +x /cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant lancer le script en l'exécutant :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo cf/cloudflaredydns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si tout fonctionne bien dans votre fichier cf, il devait y avoir 3 nouveaux fichiers : cloudflare.ids cloudflare.log et ip.txt&lt;br /&gt;
Et votre ip sur cloudflare devrait être actualisée.&lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
Puisque, normalement, example.localhost redirige toutes les connexions vers votre serveur, vous pouvez utilisez Let's Encrypt. &lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais le script ne le fait que lorsque vous l'exécuter, alors comment faire ? Il suffit de dire au raspberry de lancer le script à intervalle régulier, pour cela, il suffit d'utiliser cron qui est un programme qui permet d'exécuter des scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo crontab -e &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il vous suffit d'ajouter une ligne pour lancer le script à l'intervalle que vous souhaitez :&lt;br /&gt;
&lt;br /&gt;
Voici un exemple pour 1 fois toutes les 15 minutes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; */15 * * * * /bin/bash /home/pi/cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Vous pouvez le modifier comme vous voulez&lt;br /&gt;
&lt;br /&gt;
Chaque étoile représente, dans l'ordre : les minutes, les heures, les jours, les mois et les années.&lt;br /&gt;
&lt;br /&gt;
Le fait de mettre une étoile signifie que ça prend tout donc toutes les minutes, heures,...&lt;br /&gt;
&lt;br /&gt;
Et le /15 indique que toutes (*) les 15 minutes (/15) vous exécutez ce qui est mis après.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Votre serveur web est maintenant fonctionnel et actualise son ip automatiquement, vous pouvez donc vous y connecter quand vous le voulez (Il est possible que votre ip change après l'exécution du script, dans le pire des cas il faudra attendre le temps d'intervalle que vous avez déterminé moins 1seconde.   =&lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18338</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18338"/>
		<updated>2019-05-15T11:15:23Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Lancement au démarrage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) :&lt;br /&gt;
&amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns.sh : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns.sh &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredyndns.sf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez changé les différents paramètres, vous pouvez sauvegarder votre fichier et quitter l'édition.&lt;br /&gt;
Il va maintenant falloir modifier les autorisations du fichier. Pour cela, changez de répertoire afin de revenir afin de revenir au /home de votre raspberry&lt;br /&gt;
&amp;lt;pre&amp;gt; cd &amp;lt;/pre&amp;gt;&lt;br /&gt;
Après avoir changé de répertoire autoriser le fichier que vous avez créer :&lt;br /&gt;
&amp;lt;pre&amp;gt; chmod +x /cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant lancer le script en l'exécutant :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo cf/cloudflaredydns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si tout fonctionne bien dans votre fichier cf, il devait y avoir 3 nouveaux fichiers : cloudflare.ids cloudflare.log et ip.txt&lt;br /&gt;
Et votre ip sur cloudflare devrait être actualisée.&lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
Puisque, normalement, example.localhost redirige toutes les connexions vers votre serveur, vous pouvez utilisez Let's Encrypt. &lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais le script ne le fait que lorsque vous l'exécuter, alors comment faire ? Il suffit de dire au raspberry de lancer le script à intervalle régulier, pour cela, il suffit d'utiliser cron qui est un programme qui permet d'exécuter des scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo crontab -e &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il vous suffit d'ajouter une ligne pour lancer le script à l'intervalle que vous souhaitez :&lt;br /&gt;
&lt;br /&gt;
Voici un exemple pour 1 fois toutes les 15 minutes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; */15 * * * * /bin/bash /home/pi/cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Vous pouvez le modifier comme vous voulez&lt;br /&gt;
&lt;br /&gt;
Chaque étoile représente, dans l'ordre : les minutes, les heures, les jours, les mois et les années.&lt;br /&gt;
&lt;br /&gt;
Le fait de mettre une étoile signifie que ça prend tout donc toutes les minutes, heures,...&lt;br /&gt;
&lt;br /&gt;
Et le /15 indique que toutes (*) les 15 minutes (/15) vous exécutez ce qui est mis après.&lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18329</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18329"/>
		<updated>2019-05-14T11:31:06Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Lancement au démarrage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) :&lt;br /&gt;
&amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns.sh : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns.sh &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredyndns.sf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez changé les différents paramètres, vous pouvez sauvegarder votre fichier et quitter l'édition.&lt;br /&gt;
Il va maintenant falloir modifier les autorisations du fichier. Pour cela, changez de répertoire afin de revenir afin de revenir au /home de votre raspberry&lt;br /&gt;
&amp;lt;pre&amp;gt; cd &amp;lt;/pre&amp;gt;&lt;br /&gt;
Après avoir changé de répertoire autoriser le fichier que vous avez créer :&lt;br /&gt;
&amp;lt;pre&amp;gt; chmod +x /cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant lancer le script en l'exécutant :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo cf/cloudflaredydns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si tout fonctionne bien dans votre fichier cf, il devait y avoir 3 nouveaux fichiers : cloudflare.ids cloudflare.log et ip.txt&lt;br /&gt;
Et votre ip sur cloudflare devrait être actualisée.&lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
Puisque, normalement, example.localhost redirige toutes les connexions vers votre serveur, vous pouvez utilisez Let's Encrypt. &lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais le script ne le fait que lorsque vous l'exécuter, alors comment faire ? Il suffit de dire au raspberry de lancer le script à intervalle régulier, pour cela, il suffit d'utiliser cron qui est un programme qui permet d'exécuter des scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo crontab -e &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il vous suffit d'ajouter une ligne pour lancer le script à l'intervalle que vous souhaitez :&lt;br /&gt;
&lt;br /&gt;
Voici un exemple pour 1 fois toutes les 15 minutes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; */15 * * * * /bin/bash /home/pi/cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Vous pouvez le modifier comme vous voulez&lt;br /&gt;
&lt;br /&gt;
Chaque étoile représente, dans l'ordre : les minutes, les heures, les jours, les mois et les années.&lt;br /&gt;
&lt;br /&gt;
Le fait de mettre une étoile signifie que ça prend tout donc toutes les minutes, heures,...&lt;br /&gt;
&lt;br /&gt;
Et le /15&lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18322</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18322"/>
		<updated>2019-05-14T11:03:27Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) :&lt;br /&gt;
&amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns.sh : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns.sh &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredyndns.sf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez changé les différents paramètres, vous pouvez sauvegarder votre fichier et quitter l'édition.&lt;br /&gt;
Il va maintenant falloir modifier les autorisations du fichier. Pour cela, changez de répertoire afin de revenir afin de revenir au /home de votre raspberry&lt;br /&gt;
&amp;lt;pre&amp;gt; cd &amp;lt;/pre&amp;gt;&lt;br /&gt;
Après avoir changé de répertoire autoriser le fichier que vous avez créer :&lt;br /&gt;
&amp;lt;pre&amp;gt; chmod +x /cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant lancer le script en l'exécutant :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo cf/cloudflaredydns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si tout fonctionne bien dans votre fichier cf, il devait y avoir 3 nouveaux fichiers : cloudflare.ids cloudflare.log et ip.txt&lt;br /&gt;
Et votre ip sur cloudflare devrait être actualisée.&lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
Puisque, normalement, example.localhost redirige toutes les connexions vers votre serveur, vous pouvez utilisez Let's Encrypt. &lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais le script ne le fait que lorsque vous l'exécuter, alors comment faire ? Il suffit de dire au raspberry de lancer le script à intervalle régulier,&lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18314</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18314"/>
		<updated>2019-05-10T09:54:09Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Lancement au démarrage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) :&lt;br /&gt;
&amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns.sh : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns.sh &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredyndns.sf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez changé les différents paramètres, vous pouvez sauvegarder votre fichier et quitter l'édition.&lt;br /&gt;
Il va maintenant falloir modifier les autorisations du fichier. Pour cela, changez de répertoire afin de revenir afin de revenir au /home de votre raspberry&lt;br /&gt;
&amp;lt;pre&amp;gt; cd &amp;lt;/pre&amp;gt;&lt;br /&gt;
Après avoir changé de répertoire autoriser le fichier que vous avez créer :&lt;br /&gt;
&amp;lt;pre&amp;gt; chmod +x /cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant lancer le script en l'exécutant :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo cf/cloudflaredydns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si tout fonctionne bien dans votre fichier cf, il devait y avoir 3 nouveaux fichiers : cloudflare.ids cloudflare.log et ip.txt&lt;br /&gt;
Et votre ip sur cloudflare devrait être actualisée.&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais le script ne le fait que lorsque vous l'exécuter, alors comment faire ? Il suffit de dire au raspberry de lancer le script à intervalle régulier,&lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18312</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18312"/>
		<updated>2019-05-10T09:49:25Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) :&lt;br /&gt;
&amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns.sh : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns.sh &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredyndns.sf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez changé les différents paramètres, vous pouvez sauvegarder votre fichier et quitter l'édition.&lt;br /&gt;
Il va maintenant falloir modifier les autorisations du fichier. Pour cela, changez de répertoire afin de revenir afin de revenir au /home de votre raspberry&lt;br /&gt;
&amp;lt;pre&amp;gt; cd &amp;lt;/pre&amp;gt;&lt;br /&gt;
Après avoir changé de répertoire autoriser le fichier que vous avez créer :&lt;br /&gt;
&amp;lt;pre&amp;gt; chmod +x /cf/cloudflaredyndns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant lancer le script en l'exécutant :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo cf/cloudflaredydns.sh &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si tout fonctionne bien dans votre fichier cf, il devait y avoir 3 nouveaux fichiers : cloudflare.ids cloudflare.log et ip.txt&lt;br /&gt;
Et votre ip sur cloudflare devrait être actualisée.&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais si il y a une panne de courant ? Que votre raspberry crash et que vous devez le redémarrer, que se passe-t-il ? Et bien votre adresse n'est plus actualisée, comment faire ? Il suffit de dire au raspberry de lancer l'Api à chaque fois qu'il démarre.   &lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18299</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18299"/>
		<updated>2019-05-08T12:40:03Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) :&lt;br /&gt;
&amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredydns &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de :  &lt;br /&gt;
&lt;br /&gt;
* email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
&lt;br /&gt;
* global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer): Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
&lt;br /&gt;
* example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
&lt;br /&gt;
* home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais si il y a une panne de courant ? Que votre raspberry crash et que vous devez le redémarrer, que se passe-t-il ? Et bien votre adresse n'est plus actualisée, comment faire ? Il suffit de dire au raspberry de lancer l'Api à chaque fois qu'il démarre.   &lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18298</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18298"/>
		<updated>2019-05-08T12:36:23Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) :&lt;br /&gt;
&amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredydns &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de : # email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
                # global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) &lt;br /&gt;
Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
                # example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
                # home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais si il y a une panne de courant ? Que votre raspberry crash et que vous devez le redémarrer, que se passe-t-il ? Et bien votre adresse n'est plus actualisée, comment faire ? Il suffit de dire au raspberry de lancer l'Api à chaque fois qu'il démarre.   &lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18297</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18297"/>
		<updated>2019-05-08T12:35:39Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. À l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela,nous utiliser une api (un logiciel qui tourne pour un autre logiciel) qui va automatiquement actualiser votre Ip.&lt;br /&gt;
Au départ cloudflare mettait à disposition une Api, mais celle-ci n'est plus mise à jour. Je vous conseille alors d'utiliser celle dont je vais explique l'installation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Premièrement, si vous êtes toujours en mode SuperAdmin (avec la commande sudo su), il va vous falloir quitter ce mode afin de ne pas créer de fichier à la racine de votre raspberry. pour cela, tapez &amp;lt;pre&amp;gt; exit &amp;lt;/pre&amp;gt; ou faites Ctrl + d dans le terminal.&lt;br /&gt;
# Ensuite, créez un dossier sur votre Raspberry (il s’appellera cf) :&lt;br /&gt;
&amp;lt;pre&amp;gt; mkdir cf &amp;lt;/pre&amp;gt; &lt;br /&gt;
# Maintenant entrez dans ce fichier &amp;lt;pre&amp;gt; cd cf &amp;lt;/pre&amp;gt; et créer le fichier cloudflaredyndns : soit en nano soit ne gedit (suivant l'interface que vous préférez) &amp;lt;pre&amp;gt; nano cloudflaredyndns &amp;lt;/pre&amp;gt; ou &amp;lt;pre&amp;gt; gedit cloudflaredydns &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque ce dernier est créer entrez ceci dedans :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# CloudFlare as Dynamic DNS&lt;br /&gt;
# From: https://letswp.io/cloudflare-as-dynamic-dns-raspberry-pi/&lt;br /&gt;
# Based on: https://gist.github.com/benkulbertis/fff10759c2391b6618dd/&lt;br /&gt;
# Original non-RPi article: https://phillymesh.net/2016/02/23/setting-up-dynamic-dns-for-your-registered-domain-through-cloudflare/&lt;br /&gt;
&lt;br /&gt;
# Update these with real values&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Don't touch these&lt;br /&gt;
ip=$(curl -s http://ipv4.icanhazip.com)&lt;br /&gt;
ip_file=&amp;quot;ip.txt&amp;quot;&lt;br /&gt;
id_file=&amp;quot;cloudflare.ids&amp;quot;&lt;br /&gt;
log_file=&amp;quot;cloudflare.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep files in the same folder when run from cron&lt;br /&gt;
current=&amp;quot;$(pwd)&amp;quot;&lt;br /&gt;
cd &amp;quot;$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
log() {&lt;br /&gt;
    if [ &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
        echo -e &amp;quot;[$(date)] - $1&amp;quot; &amp;gt;&amp;gt; $log_file&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
log &amp;quot;Check Initiated&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f $ip_file ]; then&lt;br /&gt;
    old_ip=$(cat $ip_file)&lt;br /&gt;
    if [ $ip == $old_ip ]; then&lt;br /&gt;
        log &amp;quot;IP has not changed.&amp;quot;&lt;br /&gt;
        exit 0&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $id_file ] &amp;amp;&amp;amp; [ $(wc -l $id_file | cut -d &amp;quot; &amp;quot; -f 1) == 2 ]; then&lt;br /&gt;
    zone_identifier=$(head -1 $id_file)&lt;br /&gt;
    record_identifier=$(tail -1 $id_file)&lt;br /&gt;
else&lt;br /&gt;
    zone_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones?name=$zone_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*' | head -1 )&lt;br /&gt;
    record_identifier=$(curl -s -X GET &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot;  | grep -Po '(?&amp;lt;=&amp;quot;id&amp;quot;:&amp;quot;)[^&amp;quot;]*')&lt;br /&gt;
    echo &amp;quot;$zone_identifier&amp;quot; &amp;gt; $id_file&lt;br /&gt;
    echo &amp;quot;$record_identifier&amp;quot; &amp;gt;&amp;gt; $id_file&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
update=$(curl -s -X PUT &amp;quot;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier&amp;quot; -H &amp;quot;X-Auth-Email: $auth_email&amp;quot; -H &amp;quot;X-Auth-Key: $auth_key&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; --data &amp;quot;{\&amp;quot;id\&amp;quot;:\&amp;quot;$zone_identifier\&amp;quot;,\&amp;quot;type\&amp;quot;:\&amp;quot;A\&amp;quot;,\&amp;quot;name\&amp;quot;:\&amp;quot;$record_name\&amp;quot;,\&amp;quot;content\&amp;quot;:\&amp;quot;$ip\&amp;quot;}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if [[ $update == *&amp;quot;\&amp;quot;success\&amp;quot;:false&amp;quot;* ]]; then&lt;br /&gt;
    message=&amp;quot;API UPDATE FAILED. DUMPING RESULTS:\n$update&amp;quot;&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo -e &amp;quot;$message&amp;quot;&lt;br /&gt;
    exit 1 &lt;br /&gt;
else&lt;br /&gt;
    message=&amp;quot;IP changed to: $ip&amp;quot;&lt;br /&gt;
    echo &amp;quot;$ip&amp;quot; &amp;gt; $ip_file&lt;br /&gt;
    log &amp;quot;$message&amp;quot;&lt;br /&gt;
    echo &amp;quot;$message&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Maintenant il vous faut modifier les 4 lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_email=&amp;quot;email@example.com&amp;quot;&lt;br /&gt;
auth_key=&amp;quot;global_api_key_goes_here&amp;quot; &lt;br /&gt;
zone_name=&amp;quot;example.com&amp;quot;&lt;br /&gt;
record_name=&amp;quot;home.example.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À la place de : # email@example.com : entrez l'adresse e-mail de votre compte cloudflare&lt;br /&gt;
                # global_api_key_goes_here : mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui constitue l'Api key.&lt;br /&gt;
                # example.com : mettez votre nom de zone, normalement c'est le nom le nom de domaine que vous avez mis sur cloudflare&lt;br /&gt;
                # home.example.com : il vous suffit d'entrer le A name que vous avez configuré sur cloudflare pour votre domaine&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais si il y a une panne de courant ? Que votre raspberry crash et que vous devez le redémarrer, que se passe-t-il ? Et bien votre adresse n'est plus actualisée, comment faire ? Il suffit de dire au raspberry de lancer l'Api à chaque fois qu'il démarre.   &lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18296</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18296"/>
		<updated>2019-05-08T11:52:05Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Après &amp;quot;password=&amp;quot; mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui est le mot de passe demandé par l'Api.&lt;br /&gt;
# Sur la dernière ligne, remplacez les noms de domaines &amp;quot;de base&amp;quot; par vos noms que vous avez donnée au votre (exemple.localhost et www.exemple.localhost) Séparez les bien par une virgule&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais si il y a une panne de courant ? Que votre raspberry crash et que vous devez le redémarrer, que se passe-t-il ? Et bien votre adresse n'est plus actualisée, comment faire ? Il suffit de dire au raspberry de lancer l'Api à chaque fois qu'il démarre.   &lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Fichier:Configuration_ApiDdclient.png&amp;diff=18295</id>
		<title>Fichier:Configuration ApiDdclient.png</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Fichier:Configuration_ApiDdclient.png&amp;diff=18295"/>
		<updated>2019-05-08T11:49:58Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : Page blanchie&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18261</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18261"/>
		<updated>2019-04-27T10:35:55Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Installation d'Apache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
Dans les autres commande, j'ai mis des sudo, mais ils ne sont pas obligé, du moment que vous êtes en super administrateur&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette commande afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les fichiers /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est utile est compris dans les trois cadres blancs (vous pouvez même supprimer le reste). &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre l'intervalle (intervalle de temps entre chaque vérification que l'Api va faire) que vous voulez du moment qu'il est supérieur à 600 car en dessous le site pourrait vous bannir (éviter le spam et les attaques ddos)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:' N'OUBLIEZ PAS LES : !&lt;br /&gt;
*Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
Premièrement, supprimez le # devant protocol, zone, ttl, login, password et domain.tld&lt;br /&gt;
&lt;br /&gt;
Ensuite :&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Après &amp;quot;password=&amp;quot; mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui est le mot de passe demandé par l'Api.&lt;br /&gt;
# Sur la dernière ligne, remplacez les noms de domaines &amp;quot;de base&amp;quot; par vos noms que vous avez donnée au votre (exemple.localhost et www.exemple.localhost) Séparez les bien par une virgule&lt;br /&gt;
&lt;br /&gt;
Afin que l'Api puisse fonctionner, il faut aussi installer la librairie de Perl (autre programme) que l'Api a besoin d'utiliser, pour cela, effectuer la commande suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get install libdata-validate-ip-perl &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Il faut aussi installer l'Api ssl de perl &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get install libio-sodcket-ssl-perl &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir effectué, exécutez la commande&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; ddclient &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais si il y a une panne de courant ? Que votre raspberry crash et que vous devez le redémarrer, que se passe-t-il ? Et bien votre adresse n'est plus actualisée, comment faire ? Il suffit de dire au raspberry de lancer l'Api à chaque fois qu'il démarre.   &lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18260</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18260"/>
		<updated>2019-04-27T10:34:21Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette commande afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les fichiers /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est utile est compris dans les trois cadres blancs (vous pouvez même supprimer le reste). &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre l'intervalle (intervalle de temps entre chaque vérification que l'Api va faire) que vous voulez du moment qu'il est supérieur à 600 car en dessous le site pourrait vous bannir (éviter le spam et les attaques ddos)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:' N'OUBLIEZ PAS LES : !&lt;br /&gt;
*Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
Premièrement, supprimez le # devant protocol, zone, ttl, login, password et domain.tld&lt;br /&gt;
&lt;br /&gt;
Ensuite :&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Après &amp;quot;password=&amp;quot; mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui est le mot de passe demandé par l'Api.&lt;br /&gt;
# Sur la dernière ligne, remplacez les noms de domaines &amp;quot;de base&amp;quot; par vos noms que vous avez donnée au votre (exemple.localhost et www.exemple.localhost) Séparez les bien par une virgule&lt;br /&gt;
&lt;br /&gt;
Afin que l'Api puisse fonctionner, il faut aussi installer la librairie de Perl (autre programme) que l'Api a besoin d'utiliser, pour cela, effectuer la commande suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get install libdata-validate-ip-perl &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Il faut aussi installer l'Api ssl de perl &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get install libio-sodcket-ssl-perl &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir effectué, exécutez la commande&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; ddclient &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais si il y a une panne de courant ? Que votre raspberry crash et que vous devez le redémarrer, que se passe-t-il ? Et bien votre adresse n'est plus actualisée, comment faire ? Il suffit de dire au raspberry de lancer l'Api à chaque fois qu'il démarre.   &lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18259</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18259"/>
		<updated>2019-04-26T21:26:53Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette commande afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les fichiers /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est utile est compris dans les trois cadres blancs (vous pouvez même supprimer le reste). &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre l'intervalle (intervalle de temps entre chaque vérification que l'Api va faire) que vous voulez du moment qu'il est supérieur à 600 car en dessous le site pourrait vous bannir (éviter le spam et les attaques ddos)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:' N'OUBLIEZ PAS LES : !&lt;br /&gt;
*Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
Premièrement, supprimez le # devant protocol, zone, ttl, login, password et domain.tld&lt;br /&gt;
&lt;br /&gt;
Ensuite :&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Après &amp;quot;password=&amp;quot; mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui est le mot de passe demandé par l'Api.&lt;br /&gt;
# Sur la dernière ligne, remplacez les noms de domaines &amp;quot;de base&amp;quot; par vos noms que vous avez donnée au votre (exemple.localhost et www.exemple.localhost) Séparez les bien par une virgule&lt;br /&gt;
&lt;br /&gt;
Afin que l'Api puisse fonctionner, il faut aussi installer la librairie de Perl (autre programme) que l'Api a besoin d'utiliser, pour cela, effectuer la commande suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get install libdata-validate-ip-perl &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Après l'avoir effectué, exécutez la commande&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; ddclient &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais si il y a une panne de courant ? Que votre raspberry crash et que vous devez le redémarrer, que se passe-t-il ? Et bien votre adresse n'est plus actualisée, comment faire ? Il suffit de dire au raspberry de lancer l'Api à chaque fois qu'il démarre.   &lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18258</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18258"/>
		<updated>2019-04-26T21:22:31Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Installation d'un certificat auto signé */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette commande afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les fichiers /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est utile est compris dans les trois cadres blancs (vous pouvez même supprimer le reste). &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre l'intervalle (intervalle de temps entre chaque vérification que l'Api va faire) que vous voulez du moment qu'il est supérieur à 600 car en dessous le site pourrait vous bannir (éviter le spam et les attaques ddos)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:'&lt;br /&gt;
*Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
Premièrement, supprimez le # devant protocol, zone, ttl, login, password et domain.tld&lt;br /&gt;
&lt;br /&gt;
Ensuite :&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Après &amp;quot;password=&amp;quot; mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui est le mot de passe demandé par l'Api.&lt;br /&gt;
# Sur la dernière ligne, remplacez les noms de domaines &amp;quot;de base&amp;quot; par vos noms que vous avez donnée au votre (exemple.localhost et www.exemple.localhost) Séparez les bien par une virgule&lt;br /&gt;
&lt;br /&gt;
Afin que l'Api puisse fonctionner, il faut aussi installer la librairie de Perl (autre programme) que l'Api a besoin d'utiliser, pour cela, effectuer la commande suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get install libdata-validate-ip-perl &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Après l'avoir effectué, exécutez la commande&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; ddclient &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais si il y a une panne de courant ? Que votre raspberry crash et que vous devez le redémarrer, que se passe-t-il ? Et bien votre adresse n'est plus actualisée, comment faire ? Il suffit de dire au raspberry de lancer l'Api à chaque fois qu'il démarre.   &lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18256</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18256"/>
		<updated>2019-04-17T18:15:44Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette commande afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les fichiers /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est utile est compris dans les trois cadres blancs (vous pouvez même supprimer le reste). &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre l'intervalle (intervalle de temps entre chaque vérification que l'Api va faire) que vous voulez du moment qu'il est supérieur à 600 car en dessous le site pourrait vous bannir (éviter le spam et les attaques ddos)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:'&lt;br /&gt;
*Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
Premièrement, supprimez le # devant protocol, zone, ttl, login, password et domain.tld&lt;br /&gt;
&lt;br /&gt;
Ensuite :&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Après &amp;quot;password=&amp;quot; mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui est le mot de passe demandé par l'Api.&lt;br /&gt;
# Sur la dernière ligne, remplacez les noms de domaines &amp;quot;de base&amp;quot; par vos noms que vous avez donnée au votre (exemple.localhost et www.exemple.localhost) Séparez les bien par une virgule&lt;br /&gt;
&lt;br /&gt;
Afin que l'Api puisse fonctionner, il faut aussi installer la librairie de Perl (autre programme) que l'Api a besoin d'utiliser, pour cela, effectuer la commande suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get install libdata-validate-ip-perl &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Après l'avoir effectué, exécutez la commande&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; ddclient &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais si il y a une panne de courant ? Que votre raspberry crash et que vous devez le redémarrer, que se passe-t-il ? Et bien votre adresse n'est plus actualisée, comment faire ? Il suffit de dire au raspberry de lancer l'Api à chaque fois qu'il démarre.   &lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18255</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18255"/>
		<updated>2019-04-17T17:21:34Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette commande afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les fichiers /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est utile est compris dans les trois cadres blancs (vous pouvez même supprimer le reste). &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre l'intervalle (intervalle de temps entre chaque vérification que l'Api va faire) que vous voulez du moment qu'il est supérieur à 600 car en dessous le site pourrait vous bannir (éviter le spam et les attaques ddos)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:'&lt;br /&gt;
*Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
Premièrement, supprimez le # devant protocol, zone, ttl, login, password et domain.tld&lt;br /&gt;
&lt;br /&gt;
Ensuite :&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Après &amp;quot;password=&amp;quot; mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui est le mot de passe demandé par l'Api.&lt;br /&gt;
# Sur la dernière ligne, remplacez les noms de domaines &amp;quot;de base&amp;quot; par vos noms que vous avez donnée au votre (exemple.localhost et www.exemple.localhost) Séparez les bien par une virgule&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais si il y a une panne de courant ? Que votre raspberry crash et que vous devez le redémarrer, que se passe-t-il ? Et bien votre adresse n'est plus actualisée, comment faire ? Il suffit de dire au raspberry de lancer l'Api à chaque fois qu'il démarre.   &lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18254</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18254"/>
		<updated>2019-04-17T17:17:21Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette commande afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les fichiers /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est utile est compris dans les trois cadres blancs (vous pouvez même supprimer le reste). &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre l'intervalle (intervalle de temps entre chaque vérification que l'Api va faire) que vous voulez du moment qu'il est supérieur à 600 car en dessous le site pourrait vous bannir (éviter le spam et les attaques ddos)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:'&lt;br /&gt;
*Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
Premièrement, supprimez le # devant protocol, zone, ttl, login, password et domain.tld&lt;br /&gt;
&lt;br /&gt;
Ensuite :&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Après &amp;quot;password=&amp;quot; mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui est le mot de passe demandé par l'Api.&lt;br /&gt;
# Sur la dernière ligne, remplacez les noms de domaines &amp;quot;de base&amp;quot; par vos noms que vous avez donnée au votre (exemple.localhost et www.exemple.localhost)&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais si il y a une panne de courant ? Que votre raspberry crash et que vous devez le redémarrer, que se passe-t-il ? Et bien votre adresse n'est plus actualisée, comment faire ? Il suffit de dire au raspberry de lancer l'Api à chaque fois qu'il démarre.   &lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18253</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18253"/>
		<updated>2019-04-17T17:11:24Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Installation d'un certificat auto signé */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Il vous est demandé de donner votre adresse e-mail , entrez-là, elle servira a vous prévenir quand il vous faudra renouveler le certificat (il a une durée de 90 jours)&lt;br /&gt;
&lt;br /&gt;
- Il vous est également demandé si vous voulez donner votre adresse e-mail pour recevoir des newsletter, à vous de choisir si vous les acceptez ou non&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous vous voulez rediriger toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2  afin que toutes les requêtes envoyées à votre site soient redirigées vers l'Https.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette commande afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les fichiers /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est utile est compris dans les trois cadres blancs (vous pouvez même supprimer le reste). &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre l'intervalle (intervalle de temps entre chaque vérification que l'Api va faire) que vous voulez du moment qu'il est supérieur à 600 car en dessous le site pourrait vous bannir (éviter le spam et les attaques ddos)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:'&lt;br /&gt;
*Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Après &amp;quot;password=&amp;quot; mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui est le mot de passe demandé par l'Api.&lt;br /&gt;
# Sur la dernière ligne, remplacez les noms de domaines &amp;quot;de base&amp;quot; par vos noms que vous avez donnée au votre (exemple.localhost et www.exemple.localhost)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais si il y a une panne de courant ? Que votre raspberry crash et que vous devez le redémarrer, que se passe-t-il ? Et bien votre adresse n'est plus actualisée, comment faire ? Il suffit de dire au raspberry de lancer l'Api à chaque fois qu'il démarre.   &lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18252</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18252"/>
		<updated>2019-04-17T15:59:39Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Installation d'Apache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette commande afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les fichiers /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est utile est compris dans les trois cadres blancs (vous pouvez même supprimer le reste). &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre l'intervalle (intervalle de temps entre chaque vérification que l'Api va faire) que vous voulez du moment qu'il est supérieur à 600 car en dessous le site pourrait vous bannir (éviter le spam et les attaques ddos)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:'&lt;br /&gt;
*Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Après &amp;quot;password=&amp;quot; mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui est le mot de passe demandé par l'Api.&lt;br /&gt;
# Sur la dernière ligne, remplacez les noms de domaines &amp;quot;de base&amp;quot; par vos noms que vous avez donnée au votre (exemple.localhost et www.exemple.localhost)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais si il y a une panne de courant ? Que votre raspberry crash et que vous devez le redémarrer, que se passe-t-il ? Et bien votre adresse n'est plus actualisée, comment faire ? Il suffit de dire au raspberry de lancer l'Api à chaque fois qu'il démarre.   &lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18194</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18194"/>
		<updated>2019-03-15T10:50:38Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette commande afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les fichiers /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est utile est compris dans les trois cadres blancs (vous pouvez même supprimer le reste). &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre l'intervalle (intervalle de temps entre chaque vérification que l'Api va faire) que vous voulez du moment qu'il est supérieur à 600 car en dessous le site pourrait vous bannir (éviter le spam et les attaques ddos)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:'&lt;br /&gt;
*Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Après &amp;quot;password=&amp;quot; mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui est le mot de passe demandé par l'Api.&lt;br /&gt;
# Sur la dernière ligne, remplacez les noms de domaines &amp;quot;de base&amp;quot; par vos noms que vous avez donnée au votre (exemple.localhost et www.exemple.localhost)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lancement au démarrage ==&lt;br /&gt;
&lt;br /&gt;
Votre serveur fonctionne parfaitement, super, votre adresse ip est actualisée automatiquement, mais si il y a une panne de courant ? Que votre raspberry crash et que vous devez le redémarrer, que se passe-t-il ? Et bien votre adresse n'est plus actualisée, comment faire ? Il suffit de dire au raspberry de lancer l'Api à chaque fois qu'il démarre.   &lt;br /&gt;
&lt;br /&gt;
==Sources :==&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Utilisateur:Xantin.preser@indse.be&amp;diff=18191</id>
		<title>Utilisateur:Xantin.preser@indse.be</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Utilisateur:Xantin.preser@indse.be&amp;diff=18191"/>
		<updated>2019-03-15T10:42:13Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Configuration d'un serveur Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== '''Projet''' ==&lt;br /&gt;
&lt;br /&gt;
Ce que j'ai fait : j'ai créé un serveur web à domicile accessible partout&lt;br /&gt;
&lt;br /&gt;
Ce que j'ai appris : &lt;br /&gt;
&lt;br /&gt;
- Utiliser des commandes sous linux (raspberry) -&amp;gt; gedit et nano&lt;br /&gt;
&lt;br /&gt;
- Comment fonctionne une Ip, un dns, une adresse mac, une redirection, comment ouvrir les ports de sa box  &lt;br /&gt;
&lt;br /&gt;
- Comment accéder à mon serveur à distance et le modifier&lt;br /&gt;
&lt;br /&gt;
Pour ce qui est des liens qui m'ont aidés, ils seront mis dans les sources de mon tutoriel&lt;br /&gt;
&lt;br /&gt;
== '''Configuration d'un serveur Web''' ==&lt;br /&gt;
&lt;br /&gt;
Pour réaliser mon projet, j'ai suivi de nombreux tutoriels, alors j'ai décidé d'en refaire un ici [[Créer et configurer un serveur web sur Gnu-Linux]]&lt;br /&gt;
&lt;br /&gt;
Un autre tuto en parle sur le site travaux.indse [[https://travaux.indse.be/mediawiki/index.php/Serveur_web Serveur web]] mais je ne pense pas qu'il est assez clair et explicatif (on ne fait qu'installer LAMP, SSH et FTP sasn trop d'explication)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
But du projet : avoir un serveur web fonctionnant depuis chez moi accessible depuis n'importe quel appareil&lt;br /&gt;
&lt;br /&gt;
Date finale : Début novembre&lt;br /&gt;
&lt;br /&gt;
Objectifs :&lt;br /&gt;
&lt;br /&gt;
- Apprendre à créer un serveur web : fait&lt;br /&gt;
&lt;br /&gt;
-Acquérir un nom de domaine et configurer une DDNS : fait &lt;br /&gt;
&lt;br /&gt;
-Avoir un raspberry : fait&lt;br /&gt;
&lt;br /&gt;
-Refaire la configuration du site sur le raspberry (savoir y accéder en local) : fait&lt;br /&gt;
&lt;br /&gt;
-Créer un certificat autosigné avec let's encrypt : fait&lt;br /&gt;
&lt;br /&gt;
-Configurer l'actualisation d'Ip sur cloudFlare + savoir accéder en ligne sur le serveur : actualisation : ok // accéder en ligne sur le serveur : ok&lt;br /&gt;
&lt;br /&gt;
-Vérifications : Quelques problèmes : raspberry freeze, impossible de se connecter en ssh à distance.&lt;br /&gt;
&lt;br /&gt;
-Créer mon tutoriel sur le site et/ou le faire sur le site [https://travaux.indse.be/mediawiki/index.php/Accueil travaux.indse] (lien externe ou interne) : Vendredi 7 décembre (Non respecté) -&amp;gt; Mardi 26 mars&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18190</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18190"/>
		<updated>2019-03-15T10:41:30Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette commande afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les fichiers /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est utile est compris dans les trois cadres blancs (vous pouvez même supprimer le reste). &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre l'intervalle (intervalle de temps entre chaque vérification que l'Api va faire) que vous voulez du moment qu'il est supérieur à 600 car en dessous le site pourrait vous bannir (éviter le spam et les attaques ddos)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:'&lt;br /&gt;
*Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Après &amp;quot;password=&amp;quot; mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui est le mot de passe demandé par l'Api.&lt;br /&gt;
# Sur la dernière ligne, remplacez les noms de domaines &amp;quot;de base&amp;quot; par vos noms que vous avez donnée au votre (exemple.localhost et www.exemple.localhost)&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18189</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18189"/>
		<updated>2019-03-15T10:40:12Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette commande afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les fichiers /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est utile est compris dans les trois cadres blancs (vous pouvez même supprimer le reste). &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre l'intervalle (intervalle de temps entre chaque vérification que l'Api va faire) que vous voulez du moment qu'il est supérieur à 600 car en dessous le site pourrait vous bannir (éviter le spam et les attaques ddos)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:'&lt;br /&gt;
*Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Après &amp;quot;password=&amp;quot; mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui est le mot de passe demandé par l'Api.&lt;br /&gt;
# Sur la dernière ligne, remplacez domaine.ctl par les 2 noms que vous avez donnée à votre domaine (exemple.localhost et www.exemple.localhost)&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18188</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18188"/>
		<updated>2019-03-15T10:37:47Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine, tout devrait fonctionner YOUPI, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette commande afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les fichiers /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est utile est compris dans les trois cadres blancs. &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre uniquement au dessus de 600 (c'est l'intervalle de temps entre chaque vérification que l'Api va faire)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:'&lt;br /&gt;
&lt;br /&gt;
Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Après &amp;quot;password=&amp;quot; mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui est le mot de passe demandé par l'Api.&lt;br /&gt;
# Sur la dernière ligne, remplacez domaine.ctl par les 2 noms que vous avez donnée à votre domaine (exemple.localhost et www.exemple.localhost)&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18185</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18185"/>
		<updated>2019-03-15T10:27:56Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine , tout devrait fonctionner, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal que vous vous doutiez qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette comme afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les doffiser /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est uniquement utiles est compris dans les trois cadres blancs. &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre uniquement au dessus de 600 (c'est l'intervalle de temps entre chaque vérification que l'Api va faire)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:'&lt;br /&gt;
&lt;br /&gt;
Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Après &amp;quot;password=&amp;quot; mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui est le mot de passe demandé par l'Api.&lt;br /&gt;
# Sur la dernière ligne, remplacez domaine.ctl par les 2 noms que vous avez donnée à votre domaine (exemple.localhost et www.exemple.localhost)&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18179</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18179"/>
		<updated>2019-03-15T10:23:16Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine , tout devrait fonctionner, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal que vous vous doutiez qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette comme afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les doffiser /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est uniquement utiles est compris dans les trois cadres blancs. &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre uniquement au dessus de 600 (c'est l'intervalle de temps entre chaque vérification que l'Api va faire)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:'&lt;br /&gt;
&lt;br /&gt;
Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Après &amp;quot;password=&amp;quot; mettez votre &amp;quot;Global Api key&amp;quot; de cloudflare (pas de panique, je vais expliquer) Allez sur votre profil cloudflare, ensuite descendez jusqu'à ce que vous arriviez dans la rubrique Api keys et cliquez sur view de la global Api. C'est cette suite de lettre et chiffre qui est le mot de passe demandé par l'Api.&lt;br /&gt;
#&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18166</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18166"/>
		<updated>2019-03-15T10:15:17Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine , tout devrait fonctionner, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal que vous vous doutiez qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette comme afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les doffiser /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est uniquement utiles est compris dans les trois cadres blancs. &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre uniquement au dessus de 600 (c'est l'intervalle de temps entre chaque vérification que l'Api va faire)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:'&lt;br /&gt;
&lt;br /&gt;
Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
# Après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# Après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;br /&gt;
# Dn&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18116</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18116"/>
		<updated>2019-02-26T12:20:05Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine , tout devrait fonctionner, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal que vous vous doutiez qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette comme afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les doffiser /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est uniquement utiles est compris dans les trois cadres blancs. &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*Dans le premier, il suffit de modifier le chiffre après le &amp;quot;daemon=&amp;quot; personnellement j'ai mis 900 mais vous pouvez mettre uniquement au dessus de 600 (c'est l'intervalle de temps entre chaque vérification que l'Api va faire)&lt;br /&gt;
*Dans le deuxième encadré, il faudra d'abord supprimer le # devant afin que le programme l'utilise et ensuite il faudra modifier ce qu'il y a après le &amp;quot;web-skip=&amp;quot; car le site à été modifié depuis que l'Api existe, donc ce qu'on lui demande d'ignorer n'est plus valide. Il faut alors mettre 'Current IP Address:'&lt;br /&gt;
&lt;br /&gt;
Dans le troisième cadre, il va falloir modifier plus de chose :&lt;br /&gt;
&lt;br /&gt;
# 1ère chose : après &amp;quot;zone=&amp;quot; mettez votre A name de cloudflare (ce qui permet de rediriger l'ip)&lt;br /&gt;
# 2ème chose : après &amp;quot;login=&amp;quot; mettez votre adresse e-mail qui vous permet de vous connecter à cloudflare&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18100</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18100"/>
		<updated>2019-02-26T12:03:29Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine , tout devrait fonctionner, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal que vous vous doutiez qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette comme afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les doffiser /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png |1000px]]&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que ça ne ressemble pas totalement à ce que vous avez, c'est parce que j'ai supprimé une grande partie de ce qui m'était inutile (puisqu'on n'utilise que l'Api pour Cloudflare)&lt;br /&gt;
&lt;br /&gt;
Ce qui nous est uniquement utiles est compris dans les trois cadres blancs. &lt;br /&gt;
&lt;br /&gt;
Dans les deux premiers vous n'aurez pas grand chose à modifier :&lt;br /&gt;
&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Fichier:Configuration_ApiDdclient.png&amp;diff=18094</id>
		<title>Fichier:Configuration ApiDdclient.png</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Fichier:Configuration_ApiDdclient.png&amp;diff=18094"/>
		<updated>2019-02-26T11:49:39Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : screen de ce qui est utile pour configurer l'Api DDclient pour qu'il fonctionne avec cloudflare&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;screen de ce qui est utile pour configurer l'Api DDclient pour qu'il fonctionne avec cloudflare&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18093</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18093"/>
		<updated>2019-02-26T11:47:40Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine , tout devrait fonctionner, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal que vous vous doutiez qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette comme afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les doffiser /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les paramètres :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Configuration ApiDdclient.png]]&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18089</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18089"/>
		<updated>2019-02-22T10:51:52Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine , tout devrait fonctionner, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal que vous vous doutiez qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette comme afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les doffiser /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr tout ne vous est pas utile et d'ailleurs n'est pas activé (il y a un # devant)&lt;br /&gt;
&lt;br /&gt;
Il va alors falloir supprimer les # là où ça va vous être utile &lt;br /&gt;
&lt;br /&gt;
Dans le screen suivant, je vais vous mettre les endroits où vous devrez modifier les para&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18008</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18008"/>
		<updated>2019-02-16T13:08:12Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine , tout devrait fonctionner, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal que vous vous doutiez qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette comme afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les doffiser /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant nous allons configurer l'Api pour qu'elle fonctionne avec votre cloudflare, pour cela vous avez le choix dans l'edit :&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo nano /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit : &amp;lt;pre&amp;gt;sudo gedit /etc/ddclient/ddclient.conf&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18007</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18007"/>
		<updated>2019-02-16T12:19:39Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine , tout devrait fonctionner, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal que vous vous doutiez qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette comme afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
2&amp;amp;3) créer les doffiser /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18006</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18006"/>
		<updated>2019-02-16T12:16:25Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine , tout devrait fonctionner, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal que vous vous doutiez qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette comme afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
2&amp;amp;3) créer les doffiser /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18005</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18005"/>
		<updated>2019-02-16T12:16:03Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine , tout devrait fonctionner, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal que vous vous doutiez qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette comme afin de dire à votre raspberry de ne regarder que dans le dossier Downloads :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous êtes dans le répertoire des téléchargement, vous pouvez Unzip le fichier que vous avez téléchargé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; unzip ddclient-master.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite entrez dans le dossier ddclient-master que vous venez d'unzip :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ddclient-master/&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis effectuez ces commandes qui vont :&lt;br /&gt;
1) copier le fichier ddclient dans /usr/sbin&lt;br /&gt;
2&amp;amp;3) créer les doffiser /etc/ddclient et /var/cache/ddclient&lt;br /&gt;
4) copier le fichier sample-etc_ddclient.conf dans /etc/ddclient/ddclient.conf et en même temps le créer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ddclient /usr/sbin/&lt;br /&gt;
mkdir /etc/ddclient&lt;br /&gt;
mkdir /var/cache/ddclient&lt;br /&gt;
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18004</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18004"/>
		<updated>2019-02-16T12:02:19Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine , tout devrait fonctionner, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal que vous vous doutiez qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que le dossier soit bien dans le fichier Downloads sinon il vous faudra changer le nom de fichier dans les commandes suivantes&lt;br /&gt;
&lt;br /&gt;
Effectuez alors cette comme afin de dire à votre raspberry de ne regarder que dans le fichier Downloads :&lt;br /&gt;
&amp;lt;pre&amp;gt; cd /home/pi/Downloads/&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
	<entry>
		<id>https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18003</id>
		<title>Créer et configurer un serveur web sous Gnu-Linux à domicile et accessible en ligne</title>
		<link rel="alternate" type="text/html" href="https://travaux.indse.be/index.php?title=Cr%C3%A9er_et_configurer_un_serveur_web_sous_Gnu-Linux_%C3%A0_domicile_et_accessible_en_ligne&amp;diff=18003"/>
		<updated>2019-02-16T11:45:13Z</updated>

		<summary type="html">&lt;p&gt;Xantin.preser@indse.be : /* Actualisation de votre adresse Ip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''Obtenir un nom de domaine''' =&lt;br /&gt;
&lt;br /&gt;
Pour cela, rien de plus simple, rendez-vous sur [https://www.freenom.com/fr/index.html freenom], c'est un service de nom de domaine gratuit donc vous n'aurez pas de .be ou de .com mais à ce moment là vous pouvez vous rendre sur d'autres sites pour les obtenir. &lt;br /&gt;
&lt;br /&gt;
Ensuite allez dans &amp;quot;''services''&amp;quot;, &amp;quot;''register a new domain''&amp;quot;, et puis créer votre nom de domaine (vous pourrez choisir plusieurs &amp;quot;'''.'''quelque chose&amp;quot;&lt;br /&gt;
vous êtes libre d'en prendre 1 ou 10 si ça vous chante mais dans notre cas vous n'en utiliserez qu'un.&lt;br /&gt;
&lt;br /&gt;
='''Créer un serveur web en localhost'''=&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 ou raspbian (si vous disposez d'un raspberry)&lt;br /&gt;
* Permissions &amp;quot;Racines&amp;quot; (root)&lt;br /&gt;
* Un peu de motivation :)&lt;br /&gt;
* Quelques connaissance en code même si je vais essayer d'être clair :)&lt;br /&gt;
&lt;br /&gt;
== Installation d'Apache ==&lt;br /&gt;
 &lt;br /&gt;
La première étape est donc d'installer apache, pour cela rendez-vous dans le terminal et écrivez ceci :&lt;br /&gt;
&lt;br /&gt;
Afin de ne pas rencontrer de problèmes de demande de droit de super administrateur dans le terminal,tapez d'abord cette commande et mettez votre mot de passe si demandé :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo su &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et puis ceci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get update &amp;amp;&amp;amp; apt-get install apache2 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier qu'apache a bien été installé vous pouvez taper &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt; dans votre navigateur web qui est le l’hôte virtuel local d'apache de base.&lt;br /&gt;
&lt;br /&gt;
Normalement si ça fonctionne vous devriez avoir une page comme ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Default_apache_page.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Si vous avez d'autres soucis, le lien du tutoriel original est dans les sources.&lt;br /&gt;
&amp;lt;p&amp;gt;Il existe une autre façon de faire [[https://travaux.indse.be/mediawiki/index.php/Certification_Linux_LPI_(examen_externe)#Se_Former_.3F ici]], mais je n'ai pas fait de la même façon et je vais aller un peu plus loin.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d'un nouvel hôte virtuel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; &amp;quot;&amp;gt;Faites bien attention à bien remplacer les &amp;quot;example&amp;quot; par le nom de votre site et les &amp;quot;'''.'''localhost&amp;quot; ou &amp;quot;local&amp;quot; par le domaine que vous avez choisi (par exemple: .cf)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous allons commencer par créer le dossier où seront stockée les pages de notre site, pour cela faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/www/example &amp;amp;&amp;amp; echo &amp;quot;Welcome to example!&amp;quot; &amp;gt; /var/www/example/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cela va aussi créer une page html où il sera affiché : &amp;quot;Welcome to example&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Il  faut alors configurer notre hôte virtuel, pour cela vous avez le choix  :&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode console&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit l'édition en mode graphique (bloc-note) :&lt;br /&gt;
&lt;br /&gt;
Mais pour cela, vous devez d'abord installer gedit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo apt-get install gedit &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo gedit /etc/apache2/sites-available/example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collez alors ceci dans le menu l'interface qui s'est ouverte (TODO : expliquer ce fichier):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.local&lt;br /&gt;
ServerAlias www.example.local&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /var/www/example&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Et sauvegarder le document&lt;br /&gt;
&lt;br /&gt;
Pour activer notre site, il faut alors utiliser la commande &amp;lt;code&amp;gt;a2ensite&amp;lt;/code&amp;gt; qui va aussi créer un fichier similaire dans le dossier &amp;lt;code&amp;gt;/etc/apache2/sites-enabled&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo a2ensite example.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
Nous devons alors relancer la configuration serveur apache :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier si notre configuration fonctionne, il faut associer l'adresse ip de notre machine avec le nom de notre serveur&lt;br /&gt;
Pour connaitre votre adresse ip sous linux, dans le terminal entrez la commande : &lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les chiffres qui sont situés après &amp;lt;code&amp;gt;inet&amp;lt;/code&amp;gt; qui est dans la partie &amp;lt;code&amp;gt; lo&amp;lt;/code&amp;gt; sont l'adresse ip de votre machine. Copiez le, nous allons le réutiliser.&lt;br /&gt;
&lt;br /&gt;
Entrez alors la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;adresse.ip.de.votre.machine www.example.local&amp;quot; &amp;gt;&amp;gt; /etc/hosts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement si votre configuration est ok, si vous essayez d'aller sur www.example.local depuis votre machine vous devriez avoir &amp;quot;Welcome to example&amp;quot; qui s'affiche sur votre site&lt;br /&gt;
&lt;br /&gt;
= '''Rendre le serveur disponible depuis l'extérieur''' =&lt;br /&gt;
&lt;br /&gt;
==Ouverture des ports de votre box==&lt;br /&gt;
&lt;br /&gt;
Maintenant que vous avez créer votre serveur, il serait plus utile de le rendre disponible depuis l'extérieur.&lt;br /&gt;
Pour cela il va falloir ouvrir les ports de sa box afin de pouvoir accéder a une partie de votre réseau local depuis l'extérieur et établir une redirection/une actualisation d'IP&lt;br /&gt;
&lt;br /&gt;
Pour l'ouverture des ports cela dépendra de votre box, possédant une bbox Proximus, je vais vous montrer la démarche à faire pour celle-ci. La démarche pour les autres box devrait être assez similaires, mais renseignez-vous. &lt;br /&gt;
&lt;br /&gt;
*Première étape : Passer en sécurité faible &lt;br /&gt;
Avec proximus, les port 80, 443 et 23 sont bloqués, pour notre serveur nous avons besoin du 80 et du 443, il faut alors passer en sécurité faible afin de les utiliser. Rendez-vous sur le site [https://www.proximus.be/login MyProximus] et connectez-vous avec le compte qui gère votre internet. Après avoir fait ceci sélectionner la page : &amp;quot;mes produits&amp;quot; puis cliquez sur votre pack internet. De là plusieurs fenêtres s'affichent, allez dans paramètres, sélectionnez sécurité faible et validez (Ne vous inquiétez pas on ne va pas vous pirater plus facilement pour la cause).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Deuxième étape : Ouvrir les ports de votre box et établir une redirection vers votre ordinateur&lt;br /&gt;
Maintenant que vos ports sont débloqué, il va falloir accéder aux paramètre de votre box pour les &amp;quot;mapper&amp;quot;; pour ça rien de plus simple, sur votre navigateur recherchez [http://192.168.1.1 192.168.1.1]. Là une page s'affiche et demande de vous connecter, pas besoin de nom d'utilisateur, juste d'un mot de passe, il se trouve derrière votre box [[Fichier:userpasswordproximus.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Après vous être connecté, nous allons d'abord fixer l'adresse de votre machine (elle pourrait changer, donc on prend des précautions), rendez-vous dans la page &amp;quot;Mon Modem&amp;quot; puis dans &amp;quot;DHCP&amp;quot; cliquez sur &amp;quot;ajouter une adresse statique&amp;quot; et ajoutez-y votre machine (normalement le nom que vous lui avez donnez doit apparaître). TODO&lt;br /&gt;
Maintenant que vous avez fait cela, allez dans la page &amp;quot;Contrôle d'accès&amp;quot; puis dans &amp;quot;Mappage des ports&amp;quot;. Là il faut alors établir 3 redirections de ports :&lt;br /&gt;
 *Le port 80 : ce que nous appelons Internet (La plupart des pages internet commencent par &amp;quot;http&amp;quot;)&lt;br /&gt;
 *Le port 443 : ce que nous appelons aussi Internet mais c'est sécurisé (Si le pages internet ne commencent pas par &amp;quot;http&amp;quot; elles commencent par &amp;quot;https&amp;quot;)&lt;br /&gt;
 *Le port 22 : Protocole ssh, en ouvrant ce port nous pouvant accéder à notre machine à distance et la modifier en ligne de code (de façon sécurisée)&lt;br /&gt;
&lt;br /&gt;
Ajoutez alors trois redirections de port, choisissez alors les 3 cités au dessus; il faut alors définir vers quelle machine votre modem va les rediriger, collez donc l'adresse Ip de votre machine (adresse que vous aviez déjà copié auparavant) là où on vous demande l'hôte interne.&lt;br /&gt;
&lt;br /&gt;
=Service d'Ip dynamique : Cloudflare=&lt;br /&gt;
&lt;br /&gt;
Puisque vos ports sont ouverts, il est temps de rendre votre serveur accessible sur Internet, pour cela il existe plusieurs services différents qui permettent d'établir une redirection d'une recherche Internet vers votre Ip, j'ai choisi cloudflare, qui fonctionne un peu différemment car j'avais des problèmes de configuration avec ma box, un désavantage de ce service, c'est qu'il peut collecter les mots de passe, si ceux-ci n'ont pas été cryptés (à vérifier).&lt;br /&gt;
&lt;br /&gt;
Rendez-vous alors sur le site de [https://www.cloudflare.com/ cloudflare] et créez vous un compte. La suite est très step by step :&lt;br /&gt;
On vous demande d'ajouter un site, écrivez alors le nom de votre site : example.local et allez à l'étape suivante.&lt;br /&gt;
&lt;br /&gt;
- Cliquez sur next&lt;br /&gt;
&lt;br /&gt;
- Choisissez le plan qui vous conviens (dans mon cas : gratuit)&lt;br /&gt;
&lt;br /&gt;
- Vous arrivez alors sur une page où Cloudflare dit scanner les dns existants, ignorez cette page et cliquez juste sur continuer&lt;br /&gt;
&lt;br /&gt;
- Cloudflare vous demande alors de changer les noms de serveurs. Rendez-vous sur [https://www.freenom.com/fr/index.html freenom] (et oui il nous est de nouveau utile) reconnectez vous et allez dans &amp;quot;Services&amp;quot; -&amp;gt; &amp;quot;Domains&amp;quot; -&amp;gt; Sur la ligne de votre domaine : &amp;quot;Manage domain&amp;quot; -&amp;gt; &amp;quot;Management tool&amp;quot; -&amp;gt; &amp;quot;Names servers&amp;quot; Cliquez sur &amp;quot;Use custom nameservers&amp;quot; Puis copiez les 2 noms de serveurs donnés par cloudflare dans les NameServer 1 et NameServer 2 (un dans chaque). Finalement enregistrez.&lt;br /&gt;
&lt;br /&gt;
- Rendez vous de nouveau sur cloudflare et continuez.&lt;br /&gt;
&lt;br /&gt;
- Maintenant vous arrivez sur une nouvelle page, cliquez sur DNS afin d'ouvrir un page qui ressemble à ceci :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cloudflaredns.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Bon vous n'avez pas réellement ça, c'est ce que vous devriez avoir après avoir suivi ces quelques consignes :&lt;br /&gt;
&lt;br /&gt;
Si vous avez déjà des choses en dessous de la ligne &amp;quot;Type  Name   Value ...&amp;quot; Supprimez les, nous allons en créer de nouveaux.&lt;br /&gt;
&lt;br /&gt;
Maintenant, décochez le nuage orange (Le nuage gris fait que vous utilisez cloudflare seulement comme une redirection d'ip)&lt;br /&gt;
&lt;br /&gt;
Dans le A : Dans &amp;quot;Name&amp;quot; entrez votre site (example.local) et Modifiez votre adresse ip pour qu'elle corresponde à la votre (nous automatiserons ceci dans la partie en dessous, mais pour la première fois faites le manuellement. Pour avoir votre adresse ip actuelle, rendez-vous sur [http://www.mon-ip.com/ mon-ip]. Puis ajoutez-le (Add record).&lt;br /&gt;
&lt;br /&gt;
Ajouter CNAME : à coté du bouton add record choisissez CNAME (à la place du A) puis dans name, tapez www et dans le domaine name mettez le nom de votre domaine (example.local), décochez le nuage puis cliquez sur add record.&lt;br /&gt;
&lt;br /&gt;
Puis de la même façon que pour le CNAME, ajoutez en un autre sauf qu'à la place du www, mettez juste le nom de votre site ''example'' et ajoutez le aussi.&lt;br /&gt;
&lt;br /&gt;
Voilà, vous avez mis votre site en ligne, mais sans certificat, votre site sera considérer comme dangereux dans la plupart des navigateurs qui empêcheront les visiteurs d'y accéder (on peut toujours y accéder mais il faut chercher un peu et les gens détestent chercher)  &lt;br /&gt;
&lt;br /&gt;
=='''Installation d'un certificat auto signé'''==&lt;br /&gt;
&lt;br /&gt;
Comme je l'ai dit précédemment, pour que les visiteurs puissent accéder à votre site, vous allez devoir utiliser un certificat qui montre que votre site est fiable et que les données sont cryptées. Pour cela, nous allons utilisez Let's Encrypt, une autorité qui permet d'avoir des certificats de manière légale. Vous allez donc installer certbot, leur système qui permet de créer ces certificats.&lt;br /&gt;
&lt;br /&gt;
Faites donc la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install certbot python-certbot-apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après l'avoir installé, lancez le :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo certbot --apache&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La suite est assez step-by-step :&lt;br /&gt;
&lt;br /&gt;
- Acceptez les termes d'utilisation : A majuscule et Enter&lt;br /&gt;
&lt;br /&gt;
- Entrez votre Adresse E-mail (pour recevoir des notifications, si votre certificat ne se met pas à jour automatiquement)&lt;br /&gt;
&lt;br /&gt;
- Là le programme vous demande &amp;quot;Which names would you like to activate HTTPS for?&amp;quot; : Ne choisissez que l'option où il est écrit ''example.localhost'' et non ''www.example.localhost'' (Normalement l'option 1 et puis validez)&lt;br /&gt;
&lt;br /&gt;
- Si tout fonctionne, vous devez maintenant choisir si vous redirigez toutes les connexion vers la connexion sécurisée (Https) ou non : Je vous conseille l'option 2 comme ça toutes les requêtes envoyées à votre site seront sécurisée.&lt;br /&gt;
&lt;br /&gt;
- Normalement si tout fonctionne certbot vous dira un message de félicitation du style &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Congratulations! You have successfully enabled https://example.localhost&lt;br /&gt;
&lt;br /&gt;
You should test your configuration at:&lt;br /&gt;
https://www.ssllabs.com/ssltest/analyze.html?d=example.localhost&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/fullchain.pem&lt;br /&gt;
   Your key file has been saved at:&lt;br /&gt;
   /etc/letsencrypt/live/example.localhost/privkey.pem&lt;br /&gt;
   Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked&lt;br /&gt;
   version of this certificate in the future, simply run certbot again&lt;br /&gt;
   with the &amp;quot;certonly&amp;quot; option. To non-interactively renew *all* of&lt;br /&gt;
   your certificates, run &amp;quot;certbot renew&amp;quot;&lt;br /&gt;
 - If you like Certbot, please consider supporting our work by:&lt;br /&gt;
&lt;br /&gt;
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
   Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Actualisation de votre adresse Ip==&lt;br /&gt;
&lt;br /&gt;
Votre site est maintenant accessible depuis le monde et que vous renvoyez bien les requêtes vers votre machine , tout devrait fonctionner, sauf que pas vraiment, le seul &amp;quot;petit&amp;quot; problème qu'il nous reste à régler : votre adresse Ip. Vu que j'en parle assez souvent, il est normal que vous vous doutiez qu'elle soit importante, mais à l'heure actuelle les fournisseurs d'accès internet utilisent encore l'IpV4 son inconvénient est qu'il n'y en a pas assez pour tout le monde, votre modem change alors d'adresses Ip et ce de manière aléatoire. Pour pallier cela, nous allons utilisez une Api (sorte de petit programme qui fonctionne pour d'autres logiciel) proposée par cloudflare. Comme la version officielle n'est plus mise à jour , nous allons prendre [https://github.com/ddclient/ddclient?utm_referrer=https://support.cloudflare.com/hc/en-us/articles/200168816-Does-Cloudflare-work-with-Dynamic-DNS-Can-I-update-my-DNS-records-remotely- l'Api partagé sur Github]&lt;br /&gt;
&lt;br /&gt;
Vous allez alors la télécharger en zip, assurez vous que&lt;/div&gt;</summary>
		<author><name>Xantin.preser@indse.be</name></author>
	</entry>
</feed>