Apache2 SSL sur Debian Etch : Différence entre versions
De wikiGite
(→Générer un certificat) |
(→Générer un certificat) |
||
Ligne 15 : | Ligne 15 : | ||
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem | make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem | ||
− | ''' | + | '''Ou''' si cette commande n'est pas disponible, il faut générer les certificats à la main : |
openssl req $@ -new -x509 -days 3650 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem | openssl req $@ -new -x509 -days 3650 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem | ||
Version du 30 décembre 2008 à 13:12
Sommaire
Install Apache + SSL (+PHP si nécessaire)
apt-get install apache2 apt-get install openssl ssl-cert apt-get install libapache2-mod-php5 php5-cli php5-common php5-cgi
Une fois le serveur apache installé, on doit générer un certificat, activer le support SSL dans apache et configurer les options SSL.
Générer un certificat
Générer un certificat permet de protéger le traffic entre client(s) et serveur, cependant il ne sera pas validé par une autorité de certification et provoquera des warnings.
Pour éviter ces messages, on doit obtenir un certificat validé par un vendeur de certificats SSL.
Note: Pour générer un certificat sous Sarge, il suffisait de taper "apache2-ssl-certificate", mais cette commande n'est plus disponible sous Etch. Si ssl-cert est installé, il fournit la commande make-ssl-cert :
mkdir /etc/apache2/ssl make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
Ou si cette commande n'est pas disponible, il faut générer les certificats à la main :
openssl req $@ -new -x509 -days 3650 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem Generating a 1024 bit RSA private key ………………………………………….++++++ …………………………………….++++++ writing new private key to ‘/etc/apache2/apache.pem’ —– You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter ‘.’, the field will be left blank. —– Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:Vienne Locality Name (eg, city) []:Poitiers Organization Name (eg, company) [Internet Widgits Pty Ltd]:Systea IG Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []:Systea IG Email Address []:fsoyer@systea.net
Vérifier les permissions sur le fichier .pem
chmod -R 600 /etc/apache2/ssl/
30/12/2008 Troisième solution : utiliser /usr/lib/ssl/misc/CA.sh
Editer le fichier et changer 'DAYS="days 365"' par 'DAYS="days 3650"'. Puis :
# Création d'un certificat d'autorité /usr/lib/ssl/misc/CA.sh -newca # Création d'un certificat pour le server web /usr/lib/ssl/misc/CA.sh -newreq #On auto-signe ce certificat /usr/lib/ssl/misc/CA.sh -sign
Les fichiers sont sauvegardés sous ./demoCA. "newcert.pem" est le certificat, "newreq.pem" est la clé. On peut les nommer de façon à les reconnaitre :
mv newcert.pem host.example.com.pem mv newreq.pem host.example.com.key
Puis :
cd demoCA #On crypte la clé après l'avoir sauvegardée cp host.example.com.key host.example.com-bkp openssl rsa -in host.example.com.key-bkp -out host.example.com.key
Il ne reste plus qu'à les copiers dans le répertoire approprié et donner les bons droits :
cp host* /etc/apache2/ssl chmod 400 /etc/apache2/ssl/host*
Ajouter le port 443 aux ports écoutés par apache, dans /etc/apache2/ports.conf
Listen 443
Activer le support SSL pour apache
a2enmod ssl Module ssl installed; run /etc/init.d/apache2 force-reload to enable.
Redémarrer apache pour prendre en compte les modifications
/etc/init.d/apache2 restart
Configurer SSL dans les VirtualHosts
Editer /etc/apache2/sites-available/default et changer
NameVirtualHost *
par
NameVirtualHost *:80 NameVirtualHost *:443
Configurer les Virtualhosts utilisant le port 443 hosts : ajouter
SSLEngine on SSLCertificateFile /etc/apache2/apache.pem
Recharger la configuration apache après ces modifications
/etc/init.d/apache2 reload Reloading web server config… XXXX
Pour info : génération d'un certificat pour achat auprès d'une CA
Pour info, générer un certificat SSL openssl req -nodes -new -keyout mondomaine.key -out mondomaine.csr Et éventuellement bis, acheter le certificat correspondant sur cacert.org ou verisign.fr autre
Pour info : génération manuelle de certificat autosigné
Sinon certificat autosigné création manuelle :
Génération de la bi-clé
openssl genrsa -out server.key 1024
Génération du certificat autosigné
openssl req -new -x509 -days 365 -key server.key -out server.crt
Attention au champ Common Name (eg, YOUR name) : il faut mettre le même nom que le serveur.
Paramètres importants :
-x509 : génération d'un certificat autosigné, et non d'une simple requête -days 3650 : le certificat est valable 3650 jours (dix ans !) -key server.key : la clé publique est extraite de la bi-clé précédente -out server.crt : le certificat est copié dans ce fichier
Vérification du certificat :
openssl x509 -in server.crt -text -noout
Création/remplacement du certificat Apache :
cat server.key > apache.pem cat server.crt >> apache.pem.
Le certificat est autosigné, les navigateurs afficheront donc une anomalie.