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 09:04] Hypathie [OpenSSL : créer un certificat avec apache2] |
doc:reseau:apache2:tp01 [25/09/2014 12:59] Hypathie [Sécuriser son site web] |
||
---|---|---|---|
Ligne 623: | Ligne 623: | ||
* **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 /home/web/monsite.com/public_html/index.php**, il faut donc :\\ ''-rw-r----- 1 root www-data 4096 sept. 22 11:44 index.php'' | ||
<code root>chown root:www-data /home/web/monsite.com/public_html/index.php\ | <code root>chown root:www-data /home/web/monsite.com/public_html/index.php\ | ||
- | && chmod 640 /home/web/monsite.com/public_html/index.php</code> | + | && chmod 644 /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 741: | Ligne 741: | ||
* 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 788: | Ligne 787: | ||
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 un virualhost ssl==== | + | ====Création des clé et certificat==== |
- | ===Création des clé et certificat === | + | |
Pour cela on va se servir de l'utilitaire openssl. | Pour cela on va se servir de l'utilitaire openssl. | ||
Ligne 817: | Ligne 815: | ||
-CAcreateserial -CAserial ca.srl''\\ | -CAcreateserial -CAserial ca.srl''\\ | ||
- | Dans ce qui suit on a sauté les quatre premières étapes.\\ Mais pour créer une connexion privée et sécurisée entre le serveur et le client qui s'y connecterait, il faudrait utiliser le | + | Dans ce qui suit on a sauté les quatre premières étapes.\\ |
+ | |||
+ | 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 | ||
</note> | </note> | ||
Ligne 849: | Ligne 849: | ||
<code root>chmod 400 /etc/apache2/ssl/apache.key</code> | <code root>chmod 400 /etc/apache2/ssl/apache.key</code> | ||
- | ===Le virtualhost "defaut-ssl" === | + | ====Créer un site accessible en ssl ==== |
- | Sur debian, c'est le fichier **/etc/apache2/sites-available/default-ssl** qui est le Virtualhost par défaut. Il faut lui créer un certificat qui servira pour le virtualhost de "monsite.com". | + | Cette fois on va mettre en place une méthode plus directe que précédemment. Par exemple un site s'appelant pegaseous.com |
- | * Il faut ensuite éditer le fichier /etc/apache2/sites-available/default-ssl pour ajouter le certificat et la clé privée. | + | On va se servir des fichiers par défaut.\\ |
- | <code root>vim /etc/apache2/sites-available/default-ssl</code> | + | 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 ne va modifier que les lignes : | + | |
- | <code> # SSLCertificateFile directive is needed. | + | |
- | SSLCertificateFile /etc/apache2/ssl/apache.crt | + | |
- | SSLCertificateKeyFile /etc/apache2/ssl/apache.key</code> | + | |
+ | On crée ensuite les répertoires et fichiers où développer son site.\\ | ||
- | * Il faut activer le module ssl : | + | * Par exemple dans le répertoire d'un autre utilisateur. |
- | <code root>a2enmod ssl</code> | + | <code root>mkdir -p /home/hypathie/www/pegaseous.com/public_html</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.\\ | + | * On crée un index dans /home/hypathie/www/ |
+ | <code root>mv /var/www/index.html /home/hypathie/www/</code> | ||
- | <code root> ls /etc/apache2/mods-enabled | grep ssl.*</code> | + | On peut le modifier : |
- | <code> | + | <code root>vim /home/hypathie/www/index.html</code> |
- | lrwxrwxrwx 1 root root 26 sept. 23 17:34 ssl.conf -> ../mods-available/ssl.conf | + | <code><html><body><h1>Ça marche!</h1> |
- | lrwxrwxrwx 1 root root 26 sept. 23 17:34 ssl.load -> ../mods-available/ssl.load</code> | + | <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> | ||
- | * Il faut activer le site "default-ssl" | + | *On créer un contenu en php dans "pegaseous" : |
- | <code root>a2ensite default-ssl</code> | + | <code root>vim /home/hypathie/www/pegaseous.com/public_html/index.php</code> |
- | <code root>service apache2 reload</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> | ||
- | -> Il correspond comme le site "default" au fichier "/etc/apache2/mods-enabled/000-default | + | ===On pense aux droits unix sur ses répertoires et fichiers=== |
+ | <code root>chmod -R 755 /home/hypathie/www/</code> | ||
- | * Visualiser la page par défaut dans son navigateur : | + | <code root>chmod 644 /home/hypathie/www/index.html\ |
- | <code>https://192.168.0.13/</code> | + | /home/hypathie/www/pegaseous.com/public_html/index.php</code> |
- | <code>It works! | + | <code root>chown root:www-data /home/hypathie/www/</code> |
- | This is the default web page for this server. | + | ===Le virtualhost "defaut" === |
- | La date du jour est 24/09/2014! </code> | + | On doit d'abord s'occuper du fichier /etc/apache2/sites-available/default |
- | ===Ajout du virualhost "monsite.com" === | + | <code root>vim /etc/apache2/sites-available/default</code> |
- | * On désactive le site : | + | <code> |
- | <code root>a2ensite monsite.com</code> | + | <VirtualHost 192.168.0.13:80> |
- | + | ||
- | * On sauvegarde le fichier /etc/apache2/sites-available/monsite.com : | + | |
- | <code root>cp /etc/apache2/sites-available/monsite.com\ | + | |
- | /etc/apache2/sites-available/monsite.com-OLD</code> | + | |
- | + | ||
- | * On créer un fichier pour le virtualhost de "monsite.com" avec ssl : | + | |
- | <code root>cp /etc/apache2/sites-available/default-ssl\ | + | |
- | /etc/apache2/sites-available/monsite.com</code> | + | |
- | + | ||
- | <code><IfModule mod_ssl.c> | + | |
- | <VirtualHost *:443> | + | |
ServerAdmin webmaster@localhost | ServerAdmin webmaster@localhost | ||
- | ServerName monsite.com | + | ServerName pegaseous.com |
- | DocumentRoot /var/www/monsite.com | + | DocumentRoot /home/hypathie/www |
<Directory /> | <Directory /> | ||
Options FollowSymLinks | Options FollowSymLinks | ||
AllowOverride None | AllowOverride None | ||
</Directory> | </Directory> | ||
- | <Directory /var/www/monsite.com/> | + | <Directory /home/hypathie/www/> |
Options Indexes FollowSymLinks MultiViews | Options Indexes FollowSymLinks MultiViews | ||
AllowOverride None | AllowOverride None | ||
Ligne 914: | Ligne 912: | ||
allow from all | allow from all | ||
</Directory> | </Directory> | ||
+ | |||
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ | ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ | ||
<Directory "/usr/lib/cgi-bin"> | <Directory "/usr/lib/cgi-bin"> | ||
Ligne 921: | Ligne 920: | ||
Allow from all | Allow from all | ||
</Directory> | </Directory> | ||
+ | |||
ErrorLog ${APACHE_LOG_DIR}/error.log | ErrorLog ${APACHE_LOG_DIR}/error.log | ||
- | |||
# Possible values include: debug, info, notice, warn, error, crit, | # Possible values include: debug, info, notice, warn, error, crit, | ||
# alert, emerg. | # alert, emerg. | ||
LogLevel warn | LogLevel warn | ||
- | CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined | + | CustomLog ${APACHE_LOG_DIR}/access.log combined |
- | + | ||
- | SSLEngine on | + | |
- | SSLCertificateFile /etc/apache2/ssl/apache.crt | + | |
- | SSLCertificateKeyFile /etc/apache2/ssl/apache.key | + | |
- | <FilesMatch "\.(cgi|shtml|phtml|php)$"> | + | |
- | SSLOptions +StdEnvVars | + | |
- | </FilesMatch> | + | |
- | <Directory /usr/lib/cgi-bin> | + | |
- | SSLOptions +StdEnvVars | + | |
- | </Directory> | + | |
- | + | ||
- | BrowserMatch "MSIE [2-6]" \ | + | |
- | nokeepalive ssl-unclean-shutdown \ | + | |
- | downgrade-1.0 force-response-1.0 | + | |
- | # MSIE 7 and newer should be able to use keepalive | + | |
- | BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown | + | |
</VirtualHost> | </VirtualHost> | ||
- | </IfModule> | ||
</code> | </code> | ||
+ | | ||
+ | * On charge le site "default" : | ||
+ | <code root>a2ensite default</code> | ||
- | * On active "monsite.com" : | + | * On édite /etc/apache2/ports.conf |
- | <code root>a2ensite monsite.com</code> | + | Pour s'éviter d'avoir au redémarrage d'apache2 le message suivant : |
- | Et on recharge apache2 | + | <code>service apache2 reload |
- | <code root>service apache2 reload</code> | + | [....] Reloading web server config: apache2[Thu Sep 25 09:33:25 2014] [warn] NameVirtualHost 192.168.0.13:80 has no VirtualHosts</code> |
- | * Dans le navigateur : | + | <code root>vim /etc/apache2/ports.conf</code> |
- | ''https://ip-serveur/monsite.com'' | + | <code>NameVirtualHost 192.168.0.13:80 |
+ | Listen 80</code> | ||
- | <code>Bravo ! | + | ===Le fichier "default-ssl"=== |
- | La mise en place d'un Virtualhost est réussie !</code> | + | * On active le module ssl: |
+ | <code root>a2enmod ssl</code> | ||
- | Et ''https://ip-serveur/monsite.com/public_html'' | + | * 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 monsite.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 | ||
+ | </code> | ||
+ | |||
+ | Il n'y a rien d'autre à modifier. | ||
+ | |||
+ | * On charge le fichier "default-ssl" | ||
+ | <code root>a2ensite default-ssl</code> | ||
- | <code>Bienvenue sur monsite.com | + | On peut maintenant accéder au site "pegaseous.com" en tapant dans le navigateur : ''https://192.168.0.13/pegaseous.com/''. |
- | Site en cours de réalisation ! | + | Il est normal que le navigateur demande une acception pour accéder au site. |
- | La date du jour est 24/09/2014!</code> | + | |
- | Et voilà ;-) |