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 [24/09/2014 07:27] Hypathie [Sécuriser son site web] |
doc:reseau:apache2:tp01 [01/10/2015 11:47] milou [Créer un site web avec apache2] |
||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
* Commentaires : Apprendre à configurer un serveur web sur son réseau local. | * Commentaires : Apprendre à configurer un serveur web sur son réseau local. | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
- | * Suivi : {{tag> à-tester à-placer}}. | + | * Suivi : {{tag> à-tester}}. |
* Création par [[user>Hypathie]] 20/09/2014 | * Création par [[user>Hypathie]] 20/09/2014 | ||
- | * Testé par <...> le <...> | + | * Testé par Hypathie octobre 2014 sur Wheezy |
- | * 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 | + | |
+ | * Référence : http://www.apache.org/ | ||
===== 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.\\ | ||
**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 37: | Ligne 37: | ||
===Installation d'apache === | ===Installation d'apache === | ||
+ | |||
<code root>apt-get install apache2</code> | <code root>apt-get install apache2</code> | ||
Ligne 48: | Ligne 49: | ||
===Comment apache est-il configuré ? === | ===Comment apache est-il configuré ? === | ||
+ | |||
Afin de comprendre la mise en place d'un site web avec apache2, on va détailler la configuration par défaut d'apache.\\ | Afin de comprendre la mise en place d'un site web avec apache2, on va détailler la configuration par défaut d'apache.\\ | ||
Ligne 73: | Ligne 75: | ||
Puisque après l'installation, il a été possible d'afficher une page web d'accueil, c'est que ce répertoire contient un fichier qui le permet : | Puisque après l'installation, il a été possible d'afficher une page web d'accueil, c'est que ce répertoire contient un fichier qui le permet : | ||
- | <code root>cd sites-available/ && less default</code> | + | <code root>cd /etc/apache2/sites-available/ && less default</code> |
<code><VirtualHost *:80> | <code><VirtualHost *:80> | ||
ServerAdmin webmaster@localhost | ServerAdmin webmaster@localhost | ||
Ligne 136: | Ligne 138: | ||
</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/, mais on placera ce fichier de code, dans un dossier qu'il faudra créer dans /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 156: | Ligne 146: | ||
====Création du site web dans /var/www/ ==== | ====Création du site web dans /var/www/ ==== | ||
- | * On crée un dossier dans /var/www : | + | |
+ | <note important> Sur Jessie, on crée un site dans /var/www/html/ </note> | ||
+ | |||
+ | * On crée un dossier dans /var/www/ : | ||
Par exemple "monsite.com" qui va pouvoir accueillir le site internet. | Par exemple "monsite.com" qui va pouvoir accueillir le site internet. | ||
<code root>mkdir -p /var/www/monsite.com/public_html</code> | <code root>mkdir -p /var/www/monsite.com/public_html</code> | ||
+ | |||
+ | |||
+ | <note important> Sur Jessie | ||
+ | <code root>mkdir -p /var/www/html/monsite.com/public_html</code> | ||
+ | </note> | ||
* On attribue à root les fichiers nouvellement créés : | * On attribue à root les fichiers nouvellement créés : | ||
<code root>chown -R $USER:$USER /var/www/monsite.com/public_html</code> | <code root>chown -R $USER:$USER /var/www/monsite.com/public_html</code> | ||
+ | |||
+ | <note important> Sur Jessie | ||
+ | <code root>chown -R $USER:$USER /var/www/html/monsite.com/public_html</code> | ||
+ | </note> | ||
* On change les droits pour que le site puisse être lu par tous : | * On change les droits pour que le site puisse être lu par tous : | ||
<code root>chmod -R 755 /var/www</code> | <code root>chmod -R 755 /var/www</code> | ||
+ | |||
+ | <note important> Sur Jessie | ||
+ | <code root>chmod -R 755 /var/www/html</code> | ||
+ | </note> | ||
* On crée sa première page index.html | * On crée sa première page index.html | ||
<code root>vim /var/www/monsite.com/public_html/index.html</code> | <code root>vim /var/www/monsite.com/public_html/index.html</code> | ||
+ | |||
+ | <note important> Sur Jessie | ||
+ | <code root>vim /var/www/html/monsite.com/public_html/index.html</code> | ||
+ | </note> | ||
+ | |||
Contenant par exemple le code suivant: | Contenant par exemple le code suivant: | ||
- | <code><html> | + | <code> |
+ | <html> | ||
<body> | <body> | ||
<h1>Bravo !</h1> | <h1>Bravo !</h1> | ||
Ligne 181: | Ligne 193: | ||
On enregistre ! | On enregistre ! | ||
- | * On crée un VirtualHost d'apache pour ce site : | + | * On crée un VirtualHost d'apache2ls pour ce site : |
<code root>cp /etc/apache2/sites-available/default /etc/apache2/sites-available/monsite.com</code> | <code root>cp /etc/apache2/sites-available/default /etc/apache2/sites-available/monsite.com</code> | ||
<code root>vim /etc/apache2/sites-available/monsite.com</code> | <code root>vim /etc/apache2/sites-available/monsite.com</code> | ||
+ | |||
+ | <note important> Sur Jessie | ||
+ | ??? | ||
+ | </note> | ||
On inscrit ceci : | On inscrit ceci : | ||
Ligne 252: | Ligne 268: | ||
* Vider le cache du navigateur : | * Vider le cache du navigateur : | ||
Par exemple, avec iceweasel :\\ | Par exemple, avec iceweasel :\\ | ||
- | ''Outils -> Supprimer l'historique récent'' | + | ''Historique -> Supprimer l'historique récent'' |
Et quand on recharge la page le problème est réglé : | Et quand on recharge la page le problème est réglé : | ||
Ligne 273: | Ligne 289: | ||
-rw-r--r-- 1 root root 59 août 21 10:49 /etc/apache2/mods-available/php5.load</code> | -rw-r--r-- 1 root root 59 août 21 10:49 /etc/apache2/mods-available/php5.load</code> | ||
+ | <note important>Si après l'installation le module php5 ne figure pas dans la liste des modules du fichier /etc/apache2/mods-available/ | ||
+ | |||
+ | * essayer : <code root>install php5 libapache2-mod-php5</code> | ||
+ | |||
+ | Et si cela n'est pas suffisant, suivre les directives de ce lien : | ||
+ | |||
+ | * http://digitizor.com/2012/09/03/how-to-fix-module-php5-does-not-exist-error-in-apache-linux/ | ||
+ | </note> | ||
+ | |||
+ | |||
+ | ===Activer le module php5 === | ||
+ | |||
+ | <code root>a2enmod php && /etc/init.d/apache2 restart</code> | ||
+ | |||
+ | <note tip> | ||
Dans /etc/apache2/mod-enabled, ce sont des liens symboliques qui activent ce module: | Dans /etc/apache2/mod-enabled, ce sont des liens symboliques qui activent ce module: | ||
<code root>ls -l /etc/apache2/mods-enabled/php5*</code> | <code root>ls -l /etc/apache2/mods-enabled/php5*</code> | ||
Ligne 280: | Ligne 311: | ||
/etc/apache2/mods-enabled/php5.load -> ../mods-available/php5.load</code> | /etc/apache2/mods-enabled/php5.load -> ../mods-available/php5.load</code> | ||
- | -> Puisque les liens sont là, le module est activé. | + | Quand les liens sont là, comme ci-dessus, c'est que le module est activé. |
+ | </note> | ||
Ligne 294: | Ligne 325: | ||
Si on active ou désactive un module ne pas oublier après l'opération de réactiver apache : ''service apache2 restart'' | Si on active ou désactive un module ne pas oublier après l'opération de réactiver apache : ''service apache2 restart'' | ||
- | ===Créer la page de test === | + | ====Créer la page de test ==== |
Ligne 401: | Ligne 432: | ||
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 622: | ||
====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 635: | ||
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 681: | ||
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 695: | ||
-> 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 741: | Ligne 766: | ||
* Le port par défaut est 443 :\\ | * Le port par défaut est 443 :\\ | ||
- | Dans apache il faut ajouter une directive ''Listen 443'' dans le fichier de configuration d'apache /etc/sites-availables/default-ssl. | ||
* Son utilisation se fait pour apache2 via OpenSSL, avec le module mod_ssl: | * Son utilisation se fait pour apache2 via OpenSSL, avec le module mod_ssl: | ||
Ligne 775: | Ligne 799: | ||
</note> | </note> | ||
+ | ====Créer un certificat auto-signé pour le site "default-ssl"==== | ||
+ | Cela ne garantira pas d'une éventuelle usurpation d'identité.\\ | ||
+ | Le certificat auto-signé c'est bien pour l'apprentissage en local ! | ||
===ssl dans la configuration d'Apache2 === | ===ssl dans la configuration d'Apache2 === | ||
Ligne 785: | Ligne 812: | ||
Il doit y avoir ''ssl.conf'' et ''ssl.load''. Sinon il faut **installer** (ne pas l'activer tout de suite).\\ | Il doit y avoir ''ssl.conf'' et ''ssl.load''. Sinon il faut **installer** (ne pas l'activer tout de suite).\\ | ||
- | ===Configurer le virual host par défaut === | + | ====Création des clé et certificat==== |
- | + | ||
- | Sur debian, c'est le fichier **/etc/apache2/sites-available/default-ssl** qui contient le Virtualhost par défaut. Il faut lui créer un certificat. | + | |
Pour cela on va se servir de l'utilitaire openssl. | Pour cela on va se servir de l'utilitaire openssl. | ||
- | * Création du certificat : | + | * Création du répertoire où l'on rangera sa clé privée : |
<code root>cd /etc/apache2/ && mkdir ssl</code> | <code root>cd /etc/apache2/ && mkdir ssl</code> | ||
- | <code root>openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt | + | * Création de la clé privée et du certificat : |
- | Generating a 1024 bit RSA private key</code> | + | <note> |
+ | __**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'' | ||
+ | |||
+ | 2) **À partir de cette clé privée, on crée un certificat CSR qui contient une clé publique** à faire signer : ''openssl req -new -key /etc/apache2/ssl/apache.key > /etc/apache2/ssl/apache.csr'' | ||
+ | |||
+ | => C'est ce certificat qu'il faut faire signer par une autorité de certification (CA) | ||
+ | Ou qu'il faudra auto-signer. | ||
+ | |||
+ | 3) **On décide d'auto-signer ce certificat donc on crée une clé privée qui serait celle du CA officielle** : ''openssl genrsa -des3 1024 > ca.key''\\ | ||
+ | -on peut ajouter -des3 qui introduit l'usage d'une "passphrase"\\ | ||
+ | -c'est cette clé privée qui signera tous les certificats que l'on émettra ; cette "passphrase" sera donc demandée à chaque utilisation de la clé. | ||
+ | |||
+ | 4) **Puis à partir de la clé privée, on crée un certificat x509 pour une durée de validité d'un an auto-signé**\\ ''openssl req -new -x509 -days 365 -key ca.key > ca.crt''\\ | ||
+ | -On répondrait à nouveau aux questions, mais on changerait la réponse relative à "Common Name". | ||
+ | |||
+ | 5) **Enfin il faudrait faire signer notre certificat de demande de signature par le certificat du CA (qui a été fait par nous-même) :**\\ | ||
+ | ''openssl x509 -req -in /etc/apache2/ssl/apache.csr -out /etc/apache2/ssl/apache.crt -CA ca.crt -CAkey ca.key\ | ||
+ | -CAcreateserial -CAserial ca.srl''\\ | ||
+ | |||
+ | 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 :\\ | ||
+ | |||
+ | -> Edition -> préférence -> Avancé -> Afficher les certificats -> (Bouton)importer | ||
+ | </note> | ||
+ | |||
+ | <code root>openssl req -x509 -nodes -days 365\ | ||
+ | -newkey rsa:1024 -keyout /etc/apache2/ssl/apache.key\ | ||
+ | -out /etc/apache2/ssl/apache.crt | ||
+ | </code> | ||
Ligne 807: | Ligne 861: | ||
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.\\ | 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) []:\\ |
- | Common Name (e.g. server FQDN or YOUR name) []:monsite.com | + | Common Name (e.g. server FQDN or YOUR name) []:192.168.0.13 \\ |
- | Email Address []:example@gmx.fr | + | Email Address []:example@gmx.fr\\ |
</note> | </note> | ||
- | |||
- | * Il faut ensuite éditer le fichier /etc/apache2/sites-available/default-ssl pour ajouter le certificat et la clé privée. | ||
- | <code root>vim /etc/apache2/sites-available/default-ssl</code> | ||
- | On ne va modifier que les lignes : | ||
- | <code> # SSLCertificateFile directive is needed. | ||
- | SSLCertificateFile /etc/apache2/ssl/apache.crt | ||
- | SSLCertificateKeyFile /etc/apache2/ssl/apache.key</code> | ||
* Restreindre les droits sur le fichier de clé privée, aux droits de lecture seulement, et pour root: | * Restreindre les droits sur le fichier de clé privée, aux droits de lecture seulement, et pour root: | ||
<code root>chmod 400 /etc/apache2/ssl/apache.key</code> | <code root>chmod 400 /etc/apache2/ssl/apache.key</code> | ||
- | * Il faut activer le module ssl : | + | ====Créer un site accessible en ssl ==== |
- | <code root>a2enmod ssl</code> | + | |
- | puis | + | |
- | <code root>service apache2 restart</code> | + | |
- | La commande ''a2enmod ssl'' a crée dans /etc/apache2/mods-enabled, les liens symboliques, ''ssl.conf'' et ''ssl.load'' qui activent le module.\\ | + | Cette fois on va mettre en place une méthode plus directe que précédemment. Par exemple un site s'appelant pegaseous.com |
- | <code root> ls /etc/apache2/mods-enabled | grep ssl.*</code> | + | On va se servir des fichiers par défaut.\\ |
+ | On commence par désactiver les deux fichiers /etc/apache2/sites-available/default et /etc/apache2/sites-available/default-ssl avec la commande ''a2dissite''. | ||
+ | |||
+ | On crée ensuite les répertoires et fichiers où développer son site.\\ | ||
+ | |||
+ | * Par exemple dans le répertoire d'un autre utilisateur. | ||
+ | <code root>mkdir -p /home/hypathie/www/pegaseous.com/public_html</code> | ||
+ | |||
+ | * On crée un index dans /home/hypathie/www/ | ||
+ | |||
+ | <code root>mv /var/www/index.html /home/hypathie/www/</code> | ||
+ | |||
+ | On peut le modifier : | ||
+ | <code root>vim /home/hypathie/www/index.html</code> | ||
+ | <code><html><body><h1>Ça marche!</h1> | ||
+ | <p>Voici ma page d'index.</p> | ||
+ | <p>YEP ! Déployée dans mon répertoire personnel !</p> | ||
+ | <p>Le serveur web apache2 fonctionne.</p> | ||
+ | </body></html></code> | ||
+ | |||
+ | *On créer un contenu en php dans "pegaseous" : | ||
+ | <code root>vim /home/hypathie/www/pegaseous.com/public_html/index.php</code> | ||
+ | <code><html> | ||
+ | <body> | ||
+ | <h1>Bienvenue sur pegaseous.com</h1> | ||
+ | <p>Site en cours de réalisation !</p> | ||
+ | <?php | ||
+ | echo "La date du jour est " . date("d/m/Y") . "!\n"; | ||
+ | ?> | ||
+ | </body> | ||
+ | </html> | ||
+ | </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" === | ||
+ | On doit d'abord s'occuper du fichier /etc/apache2/sites-available/default | ||
+ | |||
+ | <code root>vim /etc/apache2/sites-available/default</code> | ||
<code> | <code> | ||
- | lrwxrwxrwx 1 root root 26 sept. 23 17:34 ssl.conf -> ../mods-available/ssl.conf | + | <VirtualHost 192.168.0.13:80> |
- | lrwxrwxrwx 1 root root 26 sept. 23 17:34 ssl.load -> ../mods-available/ssl.load</code> | + | ServerAdmin webmaster@localhost |
+ | ServerName pegaseous.com | ||
+ | DocumentRoot /home/hypathie/www | ||
+ | <Directory /> | ||
+ | Options FollowSymLinks | ||
+ | AllowOverride None | ||
+ | </Directory> | ||
+ | <Directory /home/hypathie/www/> | ||
+ | Options Indexes FollowSymLinks MultiViews | ||
+ | AllowOverride None | ||
+ | Order allow,deny | ||
+ | allow from all | ||
+ | </Directory> | ||
- | * Il faut activer le site "default-ssl" | + | ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ |
- | <code root>a2ensite default-ssl</code> | + | <Directory "/usr/lib/cgi-bin"> |
- | <code root>service apache2 reload</code> | + | AllowOverride None |
+ | Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch | ||
+ | Order allow,deny | ||
+ | Allow from all | ||
+ | </Directory> | ||
- | -> Il correspond comme le site "default" au fichier "/etc/apache2/mods-enabled/000-default | + | ErrorLog ${APACHE_LOG_DIR}/error.log |
+ | # Possible values include: debug, info, notice, warn, error, crit, | ||
+ | # alert, emerg. | ||
+ | LogLevel warn | ||
- | * Visualiser la page par défaut dans son navigateur : | + | CustomLog ${APACHE_LOG_DIR}/access.log combined |
- | <code>https://192.168.0.13/</code> | + | </VirtualHost> |
+ | </code> | ||
- | <code>It works! | + | * On charge le site "default" : |
- | This is the default web page for this server. | + | <code root>a2ensite default</code> |
- | La date du jour est 24/09/2014! </code> | + | |
+ | * On édite /etc/apache2/ports.conf | ||
+ | |||
+ | Pour s'éviter d'avoir au redémarrage d'apache2 le message suivant : | ||
+ | <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> | ||
+ | |||
+ | <code root>vim /etc/apache2/ports.conf</code> | ||
+ | <code>NameVirtualHost 192.168.0.13:80 | ||
+ | Listen 80</code> | ||
+ | |||
+ | ===Le fichier "default-ssl"=== | ||
+ | |||
+ | * On active le module ssl: | ||
+ | <code root>a2enmod ssl</code> | ||
+ | |||
+ | * On édite vim /etc/apache2/sites-available/default-ssl pour ajouter clé et certificat ainsi que le site déclarer dans le fichier default" : | ||
+ | |||
+ | <code root>vim /etc/apache2/sites-available/default-ssl</code> | ||
+ | |||
+ | <code><IfModule mod_ssl.c> | ||
+ | <VirtualHost *:443> | ||
+ | ServerAdmin webmaster@localhost | ||
+ | |||
+ | ServerName pegaseous.com | ||
+ | DocumentRoot /home/hypathie/www | ||
+ | <Directory /> | ||
+ | Options FollowSymLinks | ||
+ | AllowOverride None | ||
+ | </Directory> | ||
+ | <Directory /home/hypathie/www/> | ||
+ | Options Indexes FollowSymLinks MultiViews | ||
+ | AllowOverride None | ||
+ | Order allow,deny | ||
+ | allow from all | ||
+ | </Directory> | ||
+ | #plus bas | ||
+ | SSLCertificateFile /etc/apache2/ssl/apache.crt | ||
+ | SSLCertificateKeyFile /etc/apache2/ssl/apache.key | ||
+ | #<...> | ||
+ | |||
+ | </VirtualHost> | ||
+ | </IfModule> | ||
+ | </code> | ||
+ | |||
+ | Il n'y a rien d'autre à modifier. | ||
+ | |||
+ | * On charge le fichier "default-ssl" | ||
+ | <code root>a2ensite default-ssl</code> | ||
+ | On peut maintenant accéder au site "pegaseous.com" en tapant dans le navigateur : ''https://192.168.0.13/pegaseous.com/''. | ||
+ | Il est normal que le navigateur demande une acception pour accéder au site. | ||