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 [24/09/2014 07:33]
Hypathie [OpenSSL : créer un certificat avec apache2]
doc:reseau:apache2:tp01 [25/09/2014 09:11]
Hypathie [OpenSSL : créer un certificat avec apache2]
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 775: Ligne 775:
 </​note>​ </​note>​
  
-====Créer un certificat auto-signé pour le site "​default-sll"====+====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 786: Ligne 788:
 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 ​=== +====Configurer ​un virualhost ssl==== 
- +===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, peut s'​effectuer en quatre étapes:​**__\\  
 + 
 +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''​\\ 
 + 
 +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>​ 
 + 
 +<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 806: Ligne 836:
 <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.\\ ​+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.\\ 
  
-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) []:Chambery\\  
-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>​
 +
 +  * 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>​
 +
 +===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"​.
  
   * Il faut ensuite éditer le fichier /​etc/​apache2/​sites-available/​default-ssl pour ajouter le certificat et la clé privée.   * Il faut ensuite éditer le fichier /​etc/​apache2/​sites-available/​default-ssl pour ajouter le certificat et la clé privée.
Ligne 825: Ligne 862:
         SSLCertificateKeyFile /​etc/​apache2/​ssl/​apache.key</​code>​         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 854: Ligne 889:
 La date du jour est 24/09/2014! </​code>​ La date du jour est 24/09/2014! </​code>​
  
 +===Ajout du virualhost "​monsite.com"​ ===
 +  * On désactive le site :
 +<code root>​a2ensite monsite.com</​code>​
 +
 +  * 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
 +        ServerName monsite.com
 +        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
 +
 +        # Possible values include: debug, info, notice, warn, error, crit,
 +        # alert, emerg.
 +        LogLevel warn
 +
 +        CustomLog ${APACHE_LOG_DIR}/​ssl_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>​
 +</​IfModule>​
 +</​code>​
 +
 +  * On active "​monsite.com"​ :
 +<code root>​a2ensite monsite.com</​code>​
 +Et on recharge apache2
 +<code root>​service apache2 reload</​code>​
 +
 +  * Dans le navigateur :
 +''​https://​ip-serveur/​monsite.com''​
 +
 +<​code>​Bravo !
 +
 +La mise en place d'un Virtualhost est réussie !</​code>​
 +
 +Et ''​https://​ip-serveur/​monsite.com/​public_html''​
 +
 +<​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