Dans un premier temps nous allons générer notre certificat.
openssl genrsa -out my-ca.key 2048
openssl req -new -x509 -days 3650 -key my-ca.key -out my-ca.crt
openssl x509 -in my-ca.crt -text -noout
Nous avons donc, par l'intermédiaire de la première commande, généré une clé. Par la seconde, nous avons généré le certificat pour qu'il soit fonctionnel 10 ans. Et enfin, par la dernière commande, nous avons rempli ce certificat.
Ensuite nous allons créer le certificat pour le domaine en particulier
openssl genrsa -des3 -out test.com.key 1024
openssl req -new -key test.com.key -out test.com.csr
Important lors de la seconde commande : Dans Common Name il faut mettre le VRAI nom du serveur, exemple : test.com ou www.test.com
openssl x509 -req -in test.com.csr -out test.com.crt -sha1 -CA my-ca.crt -CAkey my-ca.key -CAcreateserial -days 3650
Une fois que tout cela est créé, pour éviter tout piratage, changez les permissions sur les fichiers *.key par cette commande :
chmod 0400 *.key
Nous devons à présent copier ces fichiers dans le répertoire d'Apache, pour cela :
cp test.com.crt /etc/apache2/ssl/ssl.crt
cp test.com.key /etc/apache2/ssl/ssl.key
cp test.com.crt /etc/apache2/ssl/my-ca.crt
Puis creer un virtualHost. Pour les 2 premieres lignes, se referer à l'article "Utiliser le module vhost_alias pour simplifier les virtualHosts"
Options +FollowSymLinks
VirtualDocumentRoot /var/www/%0.0
#SECTION SSL
SSLEngine on
SSLProtocol all -SSLv2
SSLCertificateFile /etc/apache2/ssl/ssl.crt
SSLCertificateKeyFile /etc/apache2/ssl/ssl.key
SSLCertificateChainFile /etc/apache2/ssl/my-ca.crt
SSLCACertificateFile /etc/apache2/ssl/my-ca.crt
Enfin, nous allons modifier le VirtualHost non-ssl (port 80) pour que l'on redirige automatique en sécurisé lorsque l'on invoque /admin.
Options +FollowSymLinks
VirtualDocumentRoot /var/www/%0.0
#GESTION DU SSL
SSLEngine off
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} /admin
RewriteRule ^(.*)$ https://%{HTTP_HOST}:443/admin
Puis on redemarre Apache
/etc/init.d/apache2 restart
Puis on fait des test http/https etc... pour s'assurer que tout est ok.
Plus d'informations sur le sujet
http://francois.openmod.org/blog/index.php?post/2007/05/28/55-apache2-en-mode-securise-sous-debian-etch
http://www.vanstormbroek.nl/blog/?p=4
Aucun commentaire:
Enregistrer un commentaire