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.
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
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
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)
Linux LPIC2 noelmace.com
Chiffrement par clés asymétriques
Linux LPIC2 noelmace.com
Signature
Linux LPIC2 noelmace.com
Certificat
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
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
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
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
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>
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)
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.

08 03 sécurisation d'un serveur web avec ssl

  • 1.
    Linux LPIC2 noelmace.com NoëlMacé 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 SecureSocket 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)
  • 5.
    Linux LPIC2 noelmace.com Chiffrementpar clés asymétriques
  • 6.
  • 7.
  • 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éationdu 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éationd'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 Configurationd'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 Cequ’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.