Sécuriser Apache avec ssl Remarques : ----------- * Les commandes précédées de "~$" doivent être exécutées en tant qu'utilisateur général et non en tant qu'utilisateur root. * Les commandes précédées de "~#" exigent que vous travailliez en tant qu'utilisateur root. La protection par mot de passe avecc le fichier .htaccess ne suffit pas à sécuriser son site car les échanges de mot de passe se font en claire, alors une des façons de sécuriser la transmission des données est d'utiliser des protocoles d'authentification et de chiffrement tels que SSL. On active le mod SSL (il s'agit d'un utilitaire Debian qui crée des liens symboliques entre mods-available/mods-enabled et sites-available/sites-enabled) : sudo a2enmod ssl On génère un certificat par la réponse à quelques question (Ceci génèrera 2 fichiers dans ****/etc/apache2/ssl**** : apache.pem et un fichier au nom aléatoire.) : D'abord on génère une clé non chiffrée sur disque (pour éviter d'avoir à saisir un mot de passe à chaque redémarrage d'Apache) : ~# mkdir -p /etc/apache2/ssl ~# cd /etc/apache2/ssl ~# openssl genrsa -out apache2.key 1024 Ensuite on crée un certificat signé avec cette clé : ~# openssl req -new -x509 -days 365 -key apache2.key -out apache2.crt Répondre à l'ensemble des questions posées. Le nom pleinement qualifié de la machine doit être donné en réponse à Common Name (le domaine en général). On peut utiliser un wildcard (joker) du type *.example.com pour que le certificat s'applique à un ensemble de sous-domaines. Ensuite, dans Apache, modifier le fichier de définition du VirtualHost qui va bien : SSLEngine on SSLCertificateFile /etc/apche2/ssl/apache2.crt SSLCertificateKeyFile /etc/apache2/ssl/apache2.key SSLVerifyClient none [etc., etc.] Puis redémarrez apache : sudo service apache2 reload Utiliser l'url rewriting Il faut activer le module rewrite : sudo a2enmod rewrite Puis relancer apache : sudo /etc/init.d/apache2 reload Attention, si vous n'avez pas créé de VirtualHost, un VirtualHost par défaut est utilisé par apache2 qui ignore les fichiers .htaccess Pour y remédier : sudo vi /etc/apache2/sites-enabled/000-default et remplacez AllowOverride none par AllowOverride All (normalement 2 fois), puis relancez apache :