préparation à la certification LPIC2 version 3.5 en français
Chapitre 8 : Topic 208 : Services Web
Configuration de Apache2 et Squid
Partie 3 : sécurisation d'un serveur web avec ssl
Topic 208.2 partie 2
Mise en place de l'https sur Apache2 via mod_ssl et openssl.
Supports créés par Noël Macé sous Licence Creative Commons BY-NC-SA.
1. Linux LPIC2 noelmace.com
Noël Macé
Formateur et Consultant indépendant expert Unix et FOSS
http://www.noelmace.com
Sécurisation d'un serveur web
avec SSL
Services web
Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.
2. Linux LPIC2 noelmace.com
Plan
• Secure Socket Layer
• mod_ssl
• Chiffrement par clés asymétriques
• Signature
• Certificat
• Installation
• /etc/ssl/*
• Création du certificat auto-signé
• Création d'un certificat signé par un CA
• Configuration d'un virtual host SSL
3. Linux LPIC2 noelmace.com
Secure Socket Layer
• protocole se situant entre un protocole réseau orienté connexion
(TCP/IP) et un protocole de la couche applicative (HTTP)
• sécurisation des communications entre un serveur et un client
authentification mutuelle
intégrité par signature digitale
chiffrement par clés asymétriques
• Port 443
Listen 443Listen 443
4. Linux LPIC2 noelmace.com
mod_ssl
• Utilisation de SSL pour Apache via OpenSSL
d'autres solutions dérivées existent
• Secure Web Server de Red Hat
• Raven SSL Module de Raven
• Stronghold de C2Net
mais leur conception est assez similaire dans l'ensemble, et leur
usage spécifique (non couverts par la LPIC2 et donc par ce cours)
8. Linux LPIC2 noelmace.com
Installation
• Debian : installé par défaut
• CentOS
configuration complète dans conf.d/ssl.conf
• Directives LoadModule et Listen
• Contexte global de ssl
• virtual host par défaut
# a2enmod ssl# a2enmod ssl
# yum install mod_ssl# yum install mod_ssl
9. Linux LPIC2 noelmace.com
/etc/ssl/*
• Configuration de OpenSSL
certs/ : certificats SSL
openssl.cnf : Configuration de OpenSSL
• date d'expiration des clés
• nom de l'organisation
• adresse, etc ...
private/ : clés privées
10. Linux LPIC2 noelmace.com
Création du certificat auto-signé
• Options
-x509 -nodes : type de certificat
-days 365 : durée de validité du certificat (en jours)
-newkey rsa:1024 : clé RSA de 1024 bits
• il est déconseillé de créer une clé plus grosse pour des histoires de compatibilité
-out /etc/apache2/server.crt : certificat
-keyout /etc/apache2/server.key : clé privée
• Interactif : suite de questions (Pays, Ville, Organisation, CN et Adresse mail)
pour Common Name : indiquer le nom de domaine à protéger
# openssl req -x509 -nodes -days 365 -newkey rsa:1024
> -out /etc/ssl/certs/noelmace.com.crt
> -keyout /etc/ssl/private/noelmace.com.key
# openssl req -x509 -nodes -days 365 -newkey rsa:1024
> -out /etc/ssl/certs/noelmace.com.crt
> -keyout /etc/ssl/private/noelmace.com.key
# chmod 400 /etc/ssl/private/noelmace.com.key# chmod 400 /etc/ssl/private/noelmace.com.key
11. Linux LPIC2 noelmace.com
Création d'un certificat signé par un CA
• génération de la clé privée
• création du CSR
Certificate Signing Request ou fichier de demande de signature de certificat
• Envoyer le CSR au CA (Autorité de certification)
par exemple gandi.net, tustico ou StartSSL (gratuit)
permet d'obtenir un certificat signé par la clé privée de l'organisme
• Déposer les certificats fournis aux bons emplacements
votre certificat ainsi que celui de votre CA dans /etc/ssl/certs/
votre clé dans le dossier /etc/ssl/private/ avec les droits 400
# openssl genrsa 1024 > noelmace.com.key# openssl genrsa 1024 > noelmace.com.key
# openssl req -new -key servwiki.key > servwiki.csr# openssl req -new -key servwiki.key > servwiki.csr
12. Linux LPIC2 noelmace.com
Configuration d'un virtual host SSL
• Directives
SSLEngine on/off : active / désactive le SSL pour ce serveur virtuel
SSLCertificateFile file : chemin vers le certificat
SSLCertificateFile file : chemin vers la clé privée
SSLVerifyClient none/optional/require/optional_no_ca : niveau de vérification du certificat pour l'authentification du
client
Require ssl : les clients ne peuvent se connecter à ce serveur virtuel que via ssl
<VirtualHost *:443>
ServerName noelmace.com
DocumentRoot /var/www/noelmace.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/noelmace.com.crt
SSLCertificateKeyFile /etc/ssl/private/noelmace.com.key
SSLCACertificateFile /etc/ssl/certs/GandiXXXSSLCA.pem
SSLVerifyClient none
Require ssl
</VirtualHost>
<VirtualHost *:443>
ServerName noelmace.com
DocumentRoot /var/www/noelmace.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/noelmace.com.crt
SSLCertificateKeyFile /etc/ssl/private/noelmace.com.key
SSLCACertificateFile /etc/ssl/certs/GandiXXXSSLCA.pem
SSLVerifyClient none
Require ssl
</VirtualHost>
13. Linux LPIC2 noelmace.com
Ce qu’on a couvert
• Qu'est ce que le SSL ?
Ainsi que les principes liés.
• Les fichiers de configuration, outils et utilitaires pour SSL
openssl, /etc/ssl/*
• Gestion des certificats SSL
• Configuration d'un virtual host pour le ssl
Weight : 2
Description : Candidates should be able to configure a web server to use
virtual hosts, Secure Sockets Layer (SSL) and customise file access.
208.2 Maintaining a web server (part 2)
14. Linux LPIC2 noelmace.com
Licence
Ce(tte) œuvre (y compris ses illustrations, sauf mention explicite) est mise à disposition selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.
Pour voir une copie de cette licence, visitez http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ ou écrivez à :
Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
Vous êtes libre de :
partager — reproduire, distribuer et communiquer cette œuvre
remixer — adapter l’œuvre
Selon les conditions suivantes :
Attribution — Vous devez clairement indiquer que ce document, ou tout document dérivé de celui, est (issu de) l’œuvre
originale de Noël Macé (noelmace.com) (sans suggérer qu'il vous approuve, vous ou votre utilisation de l’œuvre, à moins
d'en demander expressément la permission).
Pas d’Utilisation Commerciale — Vous n’avez pas le droit d’utiliser cette œuvre à des fins commerciales (ie. l'intention
première ou l'objectif d'obtenir un avantage commercial ou une compensation financière privée). Pour obtenir ce droit, une
autorisation explicite de l'auteur est requise.
Partage dans les Mêmes Conditions — Si vous modifiez, transformez ou adaptez cette œuvre, vous n’avez le droit de
distribuer votre création que sous une licence identique ou similaire à celle-ci.
Pour toute demande de collaboration, d'utilisation commerciale ou de publication de ce support ou d'un dérivé de celui-ci sous une
licence incompatible, contacter l'auteur via les contacts indiqués sur le site http://www.noelmace.com. Vous êtes par ailleurs
vivement encouragé (sans obligation légale) à communiquer avec celui-ci si vous réalisez une œuvre dérivée ou toute amélioration
de ce support.