|
|
S'il n'y a pas de solution c'est qu'il n'y a pas de problème! |
|
|
Introduction
L'installation d'Apache avec mod_ssl comme outil de cryptographie ne pas semblé tout à fait triviale la première fois que j'ai eu l'idée
saugrenue de vouloir l'installer. Comme je souhaitais en même temps avoir PHP et mod_perl, les doses de café et d'aspirine ont dûes être
augmentées à cette occasion ;-)
Fichiers à télécharger
Faites très attention: chaque version de mod_ssl est associée à une version précise d'apache, ne vous trompez pas!! Pour installer openssl, vous avez besoin de ... perl 5! Installation du bazar Je suppose que vous avez décompressé tous les fichiers téléchargés dans /usr/local/src. Vous avez donc des répertoires openssl-x.x.x, mod_ssl-y.y.y-z.z.z, php-u.u.u, mod_perl-v.v.v et apache_z.z.z. Notez bien que le nom de mod_ssl contient à la fin la même version que apache. openssl (sautez ce § si vous n'installez pas mod_ssl) Allez dans le répertoire des sources de openssl, lisez le fichier INSTALL ;-) et lancez
Vous pouvez changer le répertoire d'installation par défaut avec l'option --prefix=, vous avez accès à l'ensemble des options de config en lançant:
Puis lancez:
Passons aux choses sérieuses.... Correctifs mod_ssl (sautez ce § si vous n'installez pas mod_ssl) mod_ssl modifie les sources d'apache... Il y a plusieurs moyens d'installer apache + mod_ssl, je vous donne celui qui m'a semblé le plus simple et le plus efficace.
Placez vous dans le répertoire des sources de mod_ssl.
où naturellement apache_z.z.z correspond au nom du répertoire des sources apache. Toutes les options de ./configure doivent être
placées sur une seule ligne. Les options --enable-module=ssl --enable-module=all --enable-shared=max --enable-rule=EAPI sont
des options qui sont passées à apache. Vous pouvez en rajouter, ou modifier par exemple le répertoire d'installation d'apache ici fixé à
/usr/local/apache. Pour connaitre toutes les options de configuration d'apache, lancez ./configure --help depuis le répertoire des sources
d'apache.
Installation d'Apache avec mod_ssl (voir plus loin pour installer apache sans mod_ssl)
La configuration d'apache a déjà été effectuée par mod_ssl précédemment. Placez vous dans le répertoire des sources d'apache.
Installation d'apache sans mod_ssl
Placez vous dans le répertoire des sources d'apache.
Vous pouvez rajouter, ou modifier des options par exemple le répertoire d'installation d'apache ici fixé à /usr/local/apache. Pour connaitre toutes les options de configuration d'apache, lancez ./configure --help depuis le répertoire des sources d'apache. (les options de ./configure sont toujours à rentrer sur une seule ligne). Puis, lancez make, puis make install. Installation de php (sautez ce § si vous n'installez pas php).
Placez vous dans le répertoire des sources de php.
L'option --with-imap permet à php d'accéder un serveur de mail imap, l'option --with-gettext permet d'utiliser des
scripts php dont l'internationalisation est basée sur gettext
(évidemment ne choisissez les options imap et gettext que si vous en avez l'usage),
/usr/local/apache/bin/apxs est le chemin vers le fichier apxs de votre
installation d'apache. Vous pouvez naturellement rajouter d'autres options.
Puis, lancez:
N'oubliez pas de recopier (et d'éventuellement éditer) le fichier php.ini-dist (configuration standard) ou php.ini-recommended (configuration "durcie") dans /usr/local/lib en le renommant php.ini (merci à James pour le rajout de cette précision) Remarque: depuis quelques "versions", php ne rajoute plus dans le fichier de configuratio d'apache:
Dans le même ordre d'idée, dans le fichier de configuration d'apache, n'oubliez pas:
Installation de mod_perl (Sautez ce § si vous n'installer pas mod_perl).
Placez vous dans le répertoire des sources de mod_perl.
où /usr/local/apache/bin/apxs est le chemin vers le fichier apxs de votre installation d'apache (cette ligne est à rentrer sans retour
à la ligne).
Lancez ensuite:
Créer un certificat de sécurité (sautez ce § si vous n'utilisez ps mod_ssl)
Il y a un outil pour cela nommé openssl (oui...) et qui se situe par défaut dans /usr/local/bin.
où évidemment nom.votre.site est le nom "homologué" de votre site web (l'ordre est à entrer sans retour à la ligne...) Si vous souhaitez créer une clé cryptée, entrez:
Mais dans ce cas, chaque lancement d'apache vous demandera d'entrer manuellement le mot de passe de la clé.
Mais c'est à vous d'écrire le programme qui fournit le mot de passe, faites attention à ce que vous faites... entrez ensuite:
qui va se servir du fichier de configuration par défaut de openssl (l'ordre est à entrer sans retour à la ligne).
Le CSR est maintenant créé, on peut valider soi même pour générer un certificat de sécurité en entrant:
Le -days donne la durée de validité du certificat, j'ai mis 10000 jours pour être "tranquille" :) (l'ordre est à entrer sans retour à la ligne)
Vérifiez bien que ces fichiers ne sont lisibles que par le propriétaire des process apache (surtout si vous utilisez une clé non cryptée) La partie installation est à présent achevée.... Il ne reste plus qu'à configurer le fichier /usr/local/apache/conf/httpd.conf Configuration
Je ne souhaite pas donner dans cette page la syntaxe complète de httpd.conf, mais plutôt les compléments nécessités par mod_ssl.
les options restart, stop, status, fullstatus et configtest restent inchangées, mais start lance apache SANS ssl. Normalement, la procédure d'installation ci-dessus, produit un fichier httpd.conf dans lequel les modules php et mod_perl ne sont activés qu'en même temps que mod_ssl. Si vous comptez vous servir de temps à autre d'apache sans ssl mais avec PHP et mod_perl, vous pouvez corriger cela en changeant:
Vous pouvez aussi, comme je l'ai fait, commenter tous les <IfDefine SSL> et les <IfModule mod_ssl.c> (avec les tags fermant correspondants) de manière à ce que apachectl start lance systématiquement ssl+php+perl. Je n'indique ci dessous que le compléments à apporter à httpd.conf pour la partie ssl. Tout d'abord, ceci a été genéré dans le fichier httpd.conf:
un serveur ssl écoute sur le port 443, pensez à l'ouvrir si vous utiliser un pare-feu
Le plus simple pour utiliser ssl est de configurer des serveurs virtuels utilisant ssl.
Si vous n'avez pas d'ip fixe, vous pouvez (à partir d'apache 1.3.13) utiliser NameVirtualHost *:443 et <VirtualHost *:443>.
BON COURAGE! |
|