OS: Debian Sarge
But:
Configurer Apache2 de manière à pouvoir effectuer des requêtes sécurisées (https)
Solution:
La mise en place de SSL sur Apache2 implique:
Création de la clé privée:
openssl genrsa -des3 -out alaxos.com.key 1024
Création du certificat:
openssl req -new -key alaxos.com.key -x509 -out sslname.crt
Ou encore
umask 077 && touch alaxos.key alaxos.cert alaxos.info alaxos.pem openssl genrsa 2048 > alaxos.key openssl req -new -x509 -nodes -sha1 -days 3650 -key alaxos.key > alaxos.cert openssl x509 -noout -fingerprint -text < alaxos.cert > alaxos.info cat alaxos.cert alaxos.key > alaxos.pem chmod 400 alaxos.key alaxos.pem
La clé et le certificat doivent en théorie être placés dans
/etc/apache2/ssl
Les droits de lecture de la clé privée doivent être réservés à root pour plus de sécurité.
Sous Apache2, le module SSL est présent dans
/etc/apache2/mods-available
Ce dossier contient les modes que l'on peut activer pour Apache2. Pour les activer, il suffit de créer un lien dans le dossier
/etc/apache2/mods-enabled
vers les fichiers .conf et .load du module. Dans notre cas, ssl.conf et ssl.load.
ln -s /etc/apache2/mods-available/ssl.conf ssl.conf ln -s /etc/apache2/mods-available/ssl.load ssl.load
Pour que Apache2 trouve la clé privée et le certificat, il suffit de rajouter les paths vers ceux-ci dans
/etc/apache2/mods-available/ssl.conf
en fin de fichier:
... SSLCertificateFile /etc/apache2/ssl/sslname.crt SSLCertificateKeyFile /etc/apache2/ssl/alaxos.com.key
Note: L'outil apache2-ssl-certificate génèe automatiquement un certificat et une clé pour Apache2. Le fichier créé est de type file.pem. En fait, ce fichier contient la clé et le certificat. Dans ce cas, un seul lien vers celui-ci est évidemment suffisant.
Pour que Apache2 écoute sur le port 443, il suffit de modifier le fichier /etc/apache2/ports.conf en ajoutant
Listen 443
Pour créer un virtual host correspondant au port 443, il faut modifier le fichier /etc/apache2/sites-available/default, en rajoutant:
NameVirtualHost *:443 ServerAdmin email@email.com SSLEngine on DocumentRoot /var/www/ Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all # This directive allows us to have apache2's default start page # in /apache2-default/, but still have / go to the right place # RedirectMatch ^/$ /apache2-default/
OS: Debian Sarge
Soft: Apache2
But:
Permettre à quelques adresses IP de naviguer dans les dossiers d'un répertoire.
Solution:
Remarque:
De manière générale, il est préférable de configurer Apache en évitant les .htaccess si on a les droits pour modifier les fichiers principaux. L'utilisation des .htaccess est gourmande, puisque le serveur regarde à chaque niveau d'une arborescence si le fichier existe, puis le(s) traite. Il en résulte une perte de performance. De plus, l'administration est plus simple si elle est centralisée.
Sous Apache2, les droits particuliers sur un dossier sont donnés dans les fichiers présents sous
/etc/apache2/sites-available
Voici un exemple de configuration pour un dossier (dans le fichier default:
Alias /test "/home/rodn/documents/test/" <Directory "/home/rodn/documents/test/"> Options Indexes IndexOptions NameWidth=* AllowOverride None Order deny,allow Deny from all #Local Allow from 127.0.0.1 Allow from xxx.xxx.xx.xxx #une autre IP Allow from xxx.xxx.xx.xxx </Directory>
OS: Ubuntu 9.10
Soft: Apache2.2
But:
Forcer SSL lorsque l'on accède à une certaine URL
Solution:
Alias /phpmyadmin /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin> RewriteEngine On RewriteCond %{SERVER_PORT} !443 #pour tout port différent de 443 RewriteRule (.*) https://www.alaxos.ch%{REQUEST_URI} [R,L] #redirige avec le hostname en dur -> redirige aussi 'localhost' vers le hostname </Directory>
OS: Ubuntu 9.10
Soft: Apache2.2
But:
Ajouter un utilisateur à un fichier contenant les users pour une “digest authentication”. La particularité de ce fichier est qu'il contient - en plus du login et du hash du mot de passe - un realm correspondant à la directive AuthName dans le fichier de config d'Apache.
Commande:
htdigest ./user_file "The AuthName value" username
Soft: Apache2.2
But:
Le but était ici de renommer un dossier, tout en préservant des liens vers des images présentes dans ce dossier.
Exemple: renommer le dossier old_name en new_name
Solution:
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule (.*) /new_name/$1 [L] </IfModule>
Soft: Apache2.2
But:
Ne permettre l'accès à un dossier ou autre que depuis certaines adresses IP en particulier
Solution:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REMOTE_ADDR} !^987\.654\.32\.10$ RewriteCond %{REMOTE_ADDR} !^123\.456\.78\.90$ RewriteRule ^$ soon_online.html [L] </IfModule>