logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 [23/09/2014 19:25]
Hypathie [Sécuriser son site web]
doc:reseau:apache2:tp01 [25/09/2014 05:10]
Hypathie [Introduction]
Ligne 141: Ligne 141:
  
   * **D'​abord,​ un fichier contenant le code source de la page web**:   * **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.+Il doit être créé dans /​var/​www/ ​:  ​/​var/​www/​dossier-du-site/​fichier.html.
  
   * **Ensuite pour que apache gère ce site** :   * **Ensuite pour que apache gère ce site** :
Ligne 733: Ligne 733:
 Pour aller plus loin, par exemple pour la rotation des journaux voir [[http://​httpd.apache.org/​docs/​trunk/​fr/​logs.html]] Pour aller plus loin, par exemple pour la rotation des journaux voir [[http://​httpd.apache.org/​docs/​trunk/​fr/​logs.html]]
  
-====OpenSSL : créer un certificat avec apache2 ====+=====OpenSSL : créer un certificat avec apache2 ​=====
 ===Le protocole ssl === ===Le protocole ssl ===
 Le protocole ssl (Secure Socket Layer) permet la sécurisation des communications entre un serveur et un client, au moyen : Le protocole ssl (Secure Socket Layer) permet la sécurisation des communications entre un serveur et un client, au moyen :
Ligne 775: Ligne 775:
 </​note>​ </​note>​
  
 +====Créer un certificat auto-signé pour le site "​default-sll"​====
 +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 783: Ligne 786:
 <code root>ls /​etc/​apache2/​mods-available | grep ssl.*</​code>​ <code root>ls /​etc/​apache2/​mods-available | grep ssl.*</​code>​
  
-Il doit y avoir ''​ssl.conf''​ et ''​ssl.load''​. Sinon il faut installer le module ​ssl ''​a2enmod ​ssl''​\\ ​+Il doit y avoir ''​ssl.conf''​ et ''​ssl.load''​. Sinon il faut **installer** (ne pas l'​activer tout de suite).\\  
 + 
 +====Configurer un virualhost ==== 
 +===Le virtualhost "​defaut-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"​. 
 + 
 +Pour cela on va se servir de l'utilitaire openssl. 
 + 
 +  * Création du certificat : 
 +<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 
 +Generating a 1024 bit RSA private key</​code>​ 
 + 
 + 
 +> -x509 -nodes : type de certificat 
 +> -days 365 : durée de vie du certificat (en jours) 
 +> - newkey rsa:1024 : clé rsa de 1024 bits 
 +> -out /​chemin/​fichier/​certificat : crée le fichier du certificat 
 +> -keyout /​chemin/​fichier/​clé : chemin du fichier de sa clé privée 
 + 
 +<note tip> 
 +__**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.\\  
 + 
 +Par exemple : 
 +Country Name (2 letter code) [AU]:FR 
 +State or Province Name (full name) [Some-State]:​France 
 +Locality Name (eg, city) []:​Chambery 
 +Organization Name (eg, company) [Internet Widgits Pty Ltd]: 
 +Organizational Unit Name (eg, section) []: 
 +Common Name (e.g. server FQDN or YOUR name) []:​monsite.com ​   
 +Email Address []:​example@gmx.fr 
 +</​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: 
 +<code root>​chmod 400 /​etc/​apache2/​ssl/​apache.key</​code>​
  
   * Il faut activer le module ssl :   * Il faut activer le module ssl :
Ligne 797: Ligne 843:
 lrwxrwxrwx 1 root root 26 sept. 23 17:34 ssl.load -> ../​mods-available/​ssl.load</​code>​ lrwxrwxrwx 1 root root 26 sept. 23 17:34 ssl.load -> ../​mods-available/​ssl.load</​code>​
  
 +  * Il faut activer le site "​default-ssl"​
 +<code root>​a2ensite default-ssl</​code>​
 +<code root>​service apache2 reload</​code>​
  
-  * Le fichier du virtualhost qui utilse le module: +-> Il correspond comme le site "​default"​ au fichier ​"/​etc/​apache2/​mods-enabled/000-default
-Sur debian c'​est ​le fichier ​**/​etc/​apache2/​sites-available/default-ssl** qui il contient contient le Virtualhost qu'on peut utiliser par défaut pour créer celui qu'on voudrait ajouter. +
-<code root>​less /​etc/​apache2/​sites-available/​default-ssl</​code>​+
  
-Il est long mais intéressant !+  * Visualiser la page par défaut dans son navigateur : 
 +<​code>​https://​192.168.0.13/</​code>​
  
-====Créer un certificat auto-signé ==== +<​code>​It works!
-Cela n'est pas suffisant contre le vol d'​identité,​ mais une fois cela fait, il ne restera plus qu'à faire signer son certificat, et d'​ajouter cette signature à la configuration d'​apache avant d'​exposer son site aux yeux de tous.+
  
-===L'​utilitaire OpenSSL=== +This is the default web page for this server
-C'est l'​utilitaire qui permet de mettre en place les certificats+La date du jour est 24/09/2014! </​code>​
-Comme le module ssl, il est installé aussi par défaut l'​utilitaire OpenSSL.\\ ​+
  
-<​note>​ +===Ajout du virualhost "​monsite.com"​ === 
-  * __Le dossier de configuration de OpenSSL est /​etc/​ssl/​__ ​+  * On désactive le site 
-Il contient deux dossiers et un fichier : +<code root>a2ensite monsite.com</code>
--**/​etc/​ssl/​openssl.cnf** +
-Fichier de configuration de opensl. On y met les directives. On peut y mettre son /home, l'​autorité de certification ... +
--> le dossier **/​etc/​ssl/​cert/​** : il contient nos certificats +
-  * le dossier **/​etc/​ssl/​private/​** : il contient nos clés privées  +
-</note>+
  
-Par exemple ​:+  * 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>​
  
-<code root>openssl req -x509 -nodes\ +  * On créer un fichier pour le virtualhost de "​monsite.com"​ avec ssl : 
- -days 365 -newkey rsa:1024\ +<code root>cp /etc/apache2/sites-available/default-ssl
- ​-out ​/etc/ssl/certs/monsite.com.crt+ /etc/apache2/sites-available/​monsite.com</​code>​
- -keyout ​/etc/ssl/private/​monsite.com.key</​code>​+
  
--x509 -nodes ​type de certificat +<code><​IfModule mod_ssl.c>​ 
--days 365 : durée de vie du certificat (en jours) +<​VirtualHost *:443> 
-- newkey rsa:1024 : clé rsa de 1024 bits +        ​ServerAdmin webmaster@localhost 
-> -out /chemin/fichier/du_certificat : crée le fichier du certificat +        ServerName monsite.com 
-> -keyout ​/etc/apache2/​server.key : chemin du fichier de sa clé privée+        DocumentRoot /​var/​www/​monsite.com 
 +        <​Directory /
 +                ​Options FollowSymLinks 
 +                AllowOverride None 
 +        </​Directory
 +        <​Directory /​var/​www/​monsite.com/​> 
 +                Options Indexes FollowSymLinks MultiViews 
 +                AllowOverride None 
 +                Order allow,​deny 
 +                allow from all 
 +        </​Directory>​ 
 +        ScriptAlias /cgi-bin/ /usr/​lib/​cgi-bin
 +        <​Directory "/​usr/​lib/​cgi-bin"​> 
 +                AllowOverride None 
 +                Options +ExecCGI ​-MultiViews +SymLinksIfOwnerMatch 
 +                Order allow,​deny 
 +                Allow from all 
 +        </Directory>​ 
 +        ErrorLog ${APACHE_LOG_DIR}/error.log
  
-On répond aux questions, par exemple ​+        # Possible values includedebug, info, notice, warn, error, crit, 
-<​code>​ +        # alert, emerg. 
-Country Name (2 letter code) [AU]:FR +        ​LogLevel warn 
-State or Province Name (full name[Some-State]:​France + 
-Locality Name (eg, city) []:Chambery +        CustomLog ${APACHE_LOG_DIR}/​ssl_access.log combined 
-Organization Name (eg, company) [Internet Widgits Pty Ltd]:​chez_moi +         
-Organizational Unit Name (eg, section) ​[]: +        SSLEngine on 
-Common Name (e.gserver FQDN or YOUR name) []:​monsite.com +        SSLCertificateFile ​   /​etc/​apache2/​ssl/​apache.crt 
-Email Address ​[]:​example@gmx.fr+        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>​ 
 +</​IfModule>​
 </​code>​ </​code>​
-<​note>​ 
-Pour un certificat auto-signé,​ il faut répondre à la question "​Common Name" le nom du domaine à protéger</​note>​ 
  
-  * On vérifie la commande oppenssl a crée deux fichiers ​:+  * On active "​monsite.com" ​: 
 +<code root>​a2ensite monsite.com</​code>​ 
 +Et on recharge apache2 
 +<code root>​service apache2 reload</​code>​
  
-<code root>​ls ​/etc/ssl/certs/ | grep monsite.com.crt</​code>​ +  * Dans le navigateur : 
-<​code>​monsite.com.crt</​code>​+''​https:​//ip-serveur/​monsite.com''​ 
 + 
 +<​code>​Bravo !
  
-<code root>ls /​etc/​ssl/​private/​ | grep monsite.com.key</​code>​ +La mise en place d'un Virtualhost est réussie !</​code>​
-<​code>​monsite.com.key</​code>​+
  
-  * Restreindre aux droits de lecture seulement et seulement pour root: +Et ''​https://ip-serveur/​monsite.com/​public_html''​
-<code root>​chmod 400 /etc/ssl/private/​monsite.com.key</code>+
  
 +<​code>​Bienvenue sur monsite.com
  
 +Site en cours de réalisation !
 +La date du jour est 24/​09/​2014!</​code>​
  
 +Et voilà ;-)
doc/reseau/apache2/tp01.txt · Dernière modification: 01/11/2019 08:43 par smolski

Pied de page des forums

Propulsé par FluxBB