2 astuces sur l'utilisation de certificats pour faire du HTTPS sur apache2

1/ Si vous voulez démarrer automatiquement votre serveur sans devoir saisir la passphrase à chaque fois :
 

cp a.key temp
openssl rsa -in temp -out a.key

 
2/ Les vhost apache2 et les certificats SSL
Vous ne pouvez pas avoir plusieurs certificats SSL (simples pour 1 domaine unique) différents sur un même serveur apache, même avec plusieurs VHOST. La raison est simple : le canal SSL est monté en tout premier. Or, l’échange HTTP dans le tunel SSL se fait en second lieu. Malheureusement pour nous, c’est lors de cet échange HTTP initial que apache va voir les entêtes lui indiquant le domaine demandé et ainsi fournir le bon VHOST.
Or un certificat SSL de base est donné pour un domaine précis xxx.com. Si vous installez ce certificat, toutes les requêtes HTTPS seront servies avec ce certificats. Or vous aurez sans doute des VHOST sur des domaines différents genre yyy.com. Pas de bol erreur HTTPS en vue.
Solution : il n’y en à pas 36, soit prendre un certificat plus évolué (plus cher donc) soit ruser. Pour ruser, il va falloir utiliser des IP logiques et demander à apache (et la partie réseau de votre serveur) de servir ses IP. Ainsi pas de confusion possible si vous associez chaque domaine avec un certificat à une IP différente (même si elles aboutissent toutes sur le même serveur, la différence sera faite en fonction de l’IP attaquée).
Un exemple de configuration d’IP logique sur la partie serveur (le plus dur a retrouver pour moi :p )
 

# The primary network interface
auto eth0
iface eth0 inet static
address XX.XXX.134.160
netmask 255.255.255.0
network 88.191.134.0
broadcast XX.XXX.134.255
gateway XX.XXX.134.1
# Service IP
auto eth0:0
iface eth0:0 inet static
address XX.XXX.232.46
netmask 255.255.255.255

Voila, j’espère que c’est clair, vu l’heure je suis fatigué, mais tant que j’ai le courage de mettre mes notes au propre…