Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:apache2:tp01 [25/09/2014 11:07] Hypathie [OpenSSL : créer un certificat avec apache2] |
doc:reseau:apache2:tp01 [03/10/2014 05:59] Hypathie [OpenSSL : créer un certificat avec apache2] |
||
---|---|---|---|
Ligne 10: | Ligne 10: | ||
* Commentaires sur le forum : [[:http://debian-facile.org/viewtopic.php?pid=98170#p98170| Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | * Commentaires sur le forum : [[:http://debian-facile.org/viewtopic.php?pid=98170#p98170| Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
- | **Nota : Ce wiki est écrit par une débutante ** | ||
- | Contributeurs, merci de compléter/vérifier [[atelier:chantier:apache2?&#verifier-l-appartenance-et-les-droits-des-fichiers-utilises-par-apache|la partie sur les droits posix sur les fichiers utiles à apache]] ! FIXME | + | |
===== Introduction ===== | ===== Introduction ===== | ||
Ce qui est mis en œuvre ici concerne une utilisation d'un serveur apache sur un réseau local qui ne pointe pas un nom de domaine acquis mais fictif.\\ | Ce qui est mis en œuvre ici concerne une utilisation d'un serveur apache sur un réseau local qui ne pointe pas un nom de domaine acquis mais fictif.\\ | ||
Ligne 18: | Ligne 17: | ||
**Avant tout, il faut savoir que monter un serveur web pour de l'auto-hébergement présente des risques.** Vous courrez par exemple le risque de donner un accès à tout votre réseau local à un pirate qui chercherait à prendre la main sur votre identité pour commettre des attaques illégales en votre nom.\\ | **Avant tout, il faut savoir que monter un serveur web pour de l'auto-hébergement présente des risques.** Vous courrez par exemple le risque de donner un accès à tout votre réseau local à un pirate qui chercherait à prendre la main sur votre identité pour commettre des attaques illégales en votre nom.\\ | ||
- | Ce wiki a pour objet de proposer une initiation à apache2, et déploie son installation sur une machine en vue de l'apprentissage; machine virtuelle qu'il faudra éteindre en dehors des TP, voire détruire plutôt que la laisser dans l'oubli sur un système. Dans tous les cas se documenter sur la sécurité.\\ | + | Ce wiki a pour objet de proposer une initiation à apache2, et déploie son installation sur une machine virtuelle. |
Si vous choisissez de déployer ce qui suit sur une machine réelle faisant office de serveur personnel en vue d'auto-hébergement, l'auteur et debian-facile décline toute responsabilité sur les conséquences fâcheuses qui pourraient en découler.\\ | Si vous choisissez de déployer ce qui suit sur une machine réelle faisant office de serveur personnel en vue d'auto-hébergement, l'auteur et debian-facile décline toute responsabilité sur les conséquences fâcheuses qui pourraient en découler.\\ | ||
- | Prenez le temps d'apprendre à sécuriser un serveur web avant de vous lancer dans l’auto-hébergement ! 8-) | + | Prenez le temps d'apprendre à sécuriser un serveur avant de vous lancer dans l’auto-hébergement ! 8-) |
===Pré-requis === | ===Pré-requis === | ||
Ligne 136: | Ligne 134: | ||
</note> | </note> | ||
- | ===Méthode pour créer son site avec apache2 === | ||
- | |||
- | Cette configuration par défaut, indique donc comment s'y prendre pour créer un site web pris en charge par apache2. | ||
- | |||
- | * **D'abord, un fichier contenant le code source de la page web**: | ||
- | Il doit être créé dans /var/www/ : /var/www/dossier-du-site/fichier.html. | ||
- | |||
- | * **Ensuite pour que apache gère ce site** : | ||
- | Il faudra créer un utilisateur dans la base de apache ainsi qu'un fichier correspondant à la page web de /var/www/dossier-du-site/fichier.html dans /etc/apache2/sites-available/dossier-du-site. | ||
- | |||
- | * **Enfin pour activer ce site** : | ||
- | Il faudra créer un lien symbolique dans /etc/apache2/sites-available/ pointant vers /etc/apache2/sites-available/dossier-du-site. | ||
**//Puisque tout est bien clair, créons notre propre site web.//** | **//Puisque tout est bien clair, créons notre propre site web.//** | ||
Ligne 401: | Ligne 387: | ||
Pour connaître la signification des différentes options à mettre soit dans "sites-avaible" soit dans le fichier de son site voir : [[http://httpd.apache.org/docs/2.2/mod/core.html]] | Pour connaître la signification des différentes options à mettre soit dans "sites-avaible" soit dans le fichier de son site voir : [[http://httpd.apache.org/docs/2.2/mod/core.html]] | ||
- | ====Création d'un nouvelle utilisateur du système Linux==== | + | ====Création d'un nouvel utilisateur du système Linux==== |
On développera son site dans le répertoire de cet utilisateur. Il est déconseillé de développer son site dans /var/www, surtout si la partition est plus petite que /home/ ! | On développera son site dans le répertoire de cet utilisateur. Il est déconseillé de développer son site dans /var/www, surtout si la partition est plus petite que /home/ ! | ||
Ligne 591: | Ligne 577: | ||
====Vérifier l'appartenance et les droits des fichiers utilisés par "apache"==== | ====Vérifier l'appartenance et les droits des fichiers utilisés par "apache"==== | ||
- | FIXME | ||
===Modifier le groupe de /var/www === | ===Modifier le groupe de /var/www === | ||
Ligne 605: | Ligne 590: | ||
On utilise les droits suivants : | On utilise les droits suivants : | ||
- | * droits en lecture <nowiki>(r)</nowiki> écriture (w) sur les fichiers réguliers, | + | * __Sur les fichiers réguliers__ : pour l'utilisateur root, droits en lecture <nowiki>(r)</nowiki> écriture (w) ; pour le groupe, droit de lecture seulement. |
- | * droits en lecture <nowiki>(r)</nowiki> écriture (w) exécution (x) sur les répertoires. | + | |
+ | * __Sur les répertoires__ : pour l'utilisateur root, droits en lecture <nowiki>(r)</nowiki> écriture (w) exécution (x) ; pour le groupe et les autres droit en lecture et exécution. | ||
</note> | </note> | ||
- | * **Pour le répertoire /var/www** , il faut donc :\\ ''drwxr-xr-x 2 root root 4096 sept. 22 11:47 www'' | + | * **Pour les répertoires /var/www et /home/web** : |
- | <code root>chmod 755 /var/www</code> | + | <code root>chmod -R 755 /var/www/ /home/web/</code> |
- | + | ||
- | * **Pour /var/www/index.php**, il faut donc :\\ ''-rw-r----- 1 root www-data 4096 sept. 22 11:47 index.php'' | + | |
- | <code root>chmod 640 /var/www/index.php</code> | + | |
- | + | ||
- | * **Pour /home/web/monsite.com**, il faut donc :\\ ''drwxr-xr-x 3 root www-data 4096 sept. 22 11:44 monsite.com'': | + | |
- | <code root>chmod 755 /home/web/monsite.com/</code> | + | |
- | * **Pour /home/web/monsite.com/public_html**, il faut donc :\\ ''drwxr-xr-x 2 root www-data 4096 sept. 22 11:44 public_html'': | + | * **Pour les fichiers d'index :** |
- | <code root>chmod 755 /home/web/monsite.com/public_html/</code> | + | <code root>chmod -R 644 /var/www/index.php /home/web/monsite.com/public_html/index.php</code> |
- | * **Pour /home/web/monsite.com/public_html/index.php**, il faut donc :\\ ''-rw-r----- 1 root www-data 4096 sept. 22 11:44 index.php'' | + | * **Pour les propriétaires des fichiers d'index** : |
- | <code root>chown root:www-data /home/web/monsite.com/public_html/index.php\ | + | <code root>chown root:www-data /var/www/index.php\ |
- | && chmod 640 /home/web/monsite.com/public_html/index.php</code> | + | /home/web/monsite.com/public_html/index.php</code> |
* **Pour le lien symbolique /var/www/monsite.com** : on ne peut pas modifier ces droits mais ce n'est pas grave. Ce qui compte c'est le fichier vers lequel pointe un lien symbolique. | * **Pour le lien symbolique /var/www/monsite.com** : on ne peut pas modifier ces droits mais ce n'est pas grave. Ce qui compte c'est le fichier vers lequel pointe un lien symbolique. | ||
Ligne 656: | Ligne 636: | ||
LogLevel warn | LogLevel warn | ||
- | **Ainsi paramétrer apache inscrit des logs d'erreur.** | + | **Ainsi paramétrer apache inscrit les événements anormaux dans l'un des fichiers du répertoire /var/log/apache2/error.log.** |
- | On peut mettre l'un des neuf niveau d'alerte, pour être alerter de la moindre information jusqu'au alerte grave : | + | On peut mettre l'un des neuf niveau d'alerte, pour être alerter de la moindre information jusqu'au alerte grave :\\ |
-''trace'' : traçage des informations de différents niveaux (produit une grande quantité d'informations);\\ | -''trace'' : traçage des informations de différents niveaux (produit une grande quantité d'informations);\\ | ||
- ''debug'' : informations de débogage qui peut être utile pour repérer où un problème ;\\ | - ''debug'' : informations de débogage qui peut être utile pour repérer où un problème ;\\ | ||
Ligne 670: | Ligne 650: | ||
-> Par défaut, on est informé à partir du niveau choisi jusqu'au niveau le plus grave.\\ | -> Par défaut, on est informé à partir du niveau choisi jusqu'au niveau le plus grave.\\ | ||
- | ===Où Apache conserve-t-il ses journaux? === | + | ===Comment le système de journalisation est-il configuré ? === |
Dans le fichier général **/etc/apache2/apache2.conf** une ligne indique le fichier où sont consigné les logs : | Dans le fichier général **/etc/apache2/apache2.conf** une ligne indique le fichier où sont consigné les logs : | ||
Ligne 795: | Ligne 775: | ||
* Création de la clé privée et du certificat : | * Création de la clé privée et du certificat : | ||
<note> | <note> | ||
- | __**La commande qui suit cette note, peut s'effectuer en quatre étapes:**__\\ | + | __**La commande qui suit cette note, raccourcit ce qui suit:**__\\ |
1) **Création de la clé privée** : par exemple ''openssl genrsa 1024 > /etc/apache2/ssl/apache.key'' | 1) **Création de la clé privée** : par exemple ''openssl genrsa 1024 > /etc/apache2/ssl/apache.key'' | ||
Ligne 815: | Ligne 795: | ||
-CAcreateserial -CAserial ca.srl''\\ | -CAcreateserial -CAserial ca.srl''\\ | ||
- | Dans ce qui suit on a sauté les quatre premières étapes.\\ | + | Pour créer une connexion privée et sécurisée entre le serveur et les clients qui s'y connecteraient, il faudrait procurer de façon sécurisé le fichier ca.crt (qu'on aurait fait nous-même en suivant toutes ces étapes) aux clients (ssh par exemple), afin qu'il soit installer dans leur navigateur.\\ Par exemple avec Iceweasel :\\ |
- | Mais pour créer une connexion privée et sécurisée entre le serveur et les clients qui s'y connecteraient, il faudrait utiliser le fichier ca.crt (qu'on a fait nous-même) le procurer de façon sécurisé aux clients (ssh par exemple), et l'installer dans son navigateur :\\ -> Edition -> préférence -> Confidentialité et Sécurité/(bouton) Certificats -> gestion des certificats -> (Onglet)autorité/(Bouton)importer | + | -> Edition -> préférence -> Avancé -> Afficher les certificats -> (Bouton)importer |
</note> | </note> | ||
Ligne 834: | Ligne 814: | ||
<note tip> | <note tip> | ||
__**Il faut répondre à une suite de question**__ : | __**Il faut répondre à une suite de question**__ : | ||
- | La plus importante est "Common Name": il faut répondre par le nom de domaine ou l'ip public du serveur concerné. Dans le cas de cette exemple, l'ip locale (fixe) du serveur fera l'affaire ou nom de domaine.\\ | + | La plus importante est "Common Name": il faut répondre par le nom de domaine ou l'ip public du serveur concerné. Dans le cas de cette exemple, l'ip locale (fixe) du serveur fera l'affaire.\\ |
- | Par exemple :\\ | + | **Par exemple :**\\ |
Country Name (2 letter code) [AU]:FR\\ | Country Name (2 letter code) [AU]:FR\\ | ||
State or Province Name (full name) [Some-State]:France\\ | State or Province Name (full name) [Some-State]:France\\ | ||
- | Locality Name (eg, city) []:Chambery\\ | + | Locality Name (eg, city) []:SaVille\\ |
Organization Name (eg, company) [Internet Widgits Pty Ltd]:\\ | Organization Name (eg, company) [Internet Widgits Pty Ltd]:\\ | ||
Organizational Unit Name (eg, section) []:\\ | Organizational Unit Name (eg, section) []:\\ | ||
Ligne 861: | Ligne 841: | ||
<code root>mkdir -p /home/hypathie/www/pegaseous.com/public_html</code> | <code root>mkdir -p /home/hypathie/www/pegaseous.com/public_html</code> | ||
- | * On crée un index dans /home/hypathie/www/ | + | * On crée un index dans /home/hypathie/www/ |
<code root>mv /var/www/index.html /home/hypathie/www/</code> | <code root>mv /var/www/index.html /home/hypathie/www/</code> | ||
Ligne 884: | Ligne 865: | ||
</html> | </html> | ||
</code> | </code> | ||
+ | |||
+ | ===On pense aux droits unix sur ses répertoires et fichiers=== | ||
+ | <code root>chmod -R 755 /home/hypathie/www/</code> | ||
+ | |||
+ | <code root>chmod 644 /home/hypathie/www/index.html\ | ||
+ | /home/hypathie/www/pegaseous.com/public_html/index.php</code> | ||
+ | |||
+ | <code root>chown root:www-data /home/hypathie/www/</code> | ||
===Le virtualhost "defaut" === | ===Le virtualhost "defaut" === | ||
Ligne 921: | Ligne 910: | ||
</VirtualHost> | </VirtualHost> | ||
</code> | </code> | ||
- | | + | |
* On charge le site "default" : | * On charge le site "default" : | ||
+ | |||
<code root>a2ensite default</code> | <code root>a2ensite default</code> | ||
* On édite /etc/apache2/ports.conf | * On édite /etc/apache2/ports.conf | ||
+ | |||
Pour s'éviter d'avoir au redémarrage d'apache2 le message suivant : | Pour s'éviter d'avoir au redémarrage d'apache2 le message suivant : | ||
<code>service apache2 reload | <code>service apache2 reload | ||
- | [....] Reloading web server config: apache2[Thu Sep 25 09:33:25 2014] [warn] NameVirtualHost 192.168.0.13:80 has no VirtualHosts</code> | + | [....] Reloading web server config: apache2[Thu Sep 25 09:33:25 2014] |
+ | [warn] NameVirtualHost 192.168.0.13:80 has no VirtualHosts</code> | ||
<code root>vim /etc/apache2/ports.conf</code> | <code root>vim /etc/apache2/ports.conf</code> | ||
Ligne 947: | Ligne 939: | ||
ServerAdmin webmaster@localhost | ServerAdmin webmaster@localhost | ||
| | ||
- | ServerName monsite.com | + | ServerName pegaseous.com |
DocumentRoot /home/hypathie/www | DocumentRoot /home/hypathie/www | ||
<Directory /> | <Directory /> | ||
Ligne 962: | Ligne 954: | ||
SSLCertificateFile /etc/apache2/ssl/apache.crt | SSLCertificateFile /etc/apache2/ssl/apache.crt | ||
SSLCertificateKeyFile /etc/apache2/ssl/apache.key | SSLCertificateKeyFile /etc/apache2/ssl/apache.key | ||
+ | #<...> | ||
+ | |||
+ | </VirtualHost> | ||
+ | </IfModule> | ||
</code> | </code> | ||