Recherche


imprimer pdf

SSL Debian 4.0 Etch


De quoi s'agit-il ?

Le SSL (Secure Socket Layer) est destiné à crypter les échanges d'informations entre 2 machines. Cela se fait généralement entre un poste client et un serveur. Ceci peut être utilisé sur votre serveur dédié afin de protéger la transmission d'information confidentielles, comme dans le cas le cas d'un paiement en ligne par exemple. Son utilisation se distingue par l'affichage de l'URL en HTTPS.









Etapes

Pré-requis

  1. Un nom de domaine chez OVH

  2. Un certificat SSL pour ce domaine ou un de ses sous-domaines commandé chez OVH (www.mon-domaine.tld dans cet exemple) : SSL OVH

  3. Un serveur dedié sous Debian 4.0 Etch

  4. La configuration du serveur se fera ici en SSH

  5. Nous supposons ici que la clé privée, la chaine de certification et le certificat ont été déposé dans le repertoire /root/ de votre serveur dédié

  6. Dans cet exemple, l'installation se fera sur l'IP Failover : 87.xx.xxx.xx défini au préalable comme indiqué ici : AjouterAliasIp

Installer les paquets

  1. Mettre à jour les sources et installer apache2 & openssl & :

    debian:~# apt-get update
    debian:~# apt-get install apache2 openssl bind9



Configuration de Bind

  1. Editez le fichier /etc/bind/db.mon-domaine.tld à l'aide de la commande nano et indiquez votre IP Failover pour le domaine ou sous-domaine de votre certificat, ici www.mon-domaine.com :

    N'oubliez pas de mettre le serial SOA a jour vers la date du jour : 2007103001

    Infos de la commande nano :
    CTRL+O => pour enregistrer
    CTRL+X => pour quitter

    nano /etc/bind/db.mon-domaine.tld
    $ttl 86400
    mon-domaine.com. IN SOA mon-domaine.tld. webmaster.mon-domaine.tld. (
    2007103001
    21600
    3600
    604800
    86400 )
    IN NS nsXXXX.ovh.net.
    IN NS sdns1.ovh.net.
    IN MX 10 mail.mon-domaine.tld.
    IN A 213.xxx.xxx.xxx
    www IN A 87.xx.xxx.xx
    ftp IN A 213.xxx.xxx.xxx
    mail IN A 213.xxx.xxx.xxx


    Redémarrez Alors bind9 :
    /etc/init.d/bind9 restart

Configuration de Apache

  1. Editez le fichier /etc/apache2/ports.conf à l'aide de la commande pico et ajoutez la ligne Listen 443 en dessous de Listen 80 :


    Infos de la commande pico :
    CTRL+O => pour enregistrer
    CTRL+X => pour quitter

    ns3773:~# cat /etc/apache2/ports.conf
    Listen 80
    Listen 443

    Créez alors les liens symboliques suivants, afin de charger le module SSL sur Apache 2.

    debian:~# ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/ssl.load
    debian:~# ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/ssl.conf



Mise en place du certificat SSL

  1. Téléchargez ensuite les .crt disponibles dans le MANAGER > Certificats SSL > Récupérer le certificat SSL puis copiez le dans /etc/apache2/ssl.crt/ avec la clé privée


    creez le dossier qui va contenir les fichiers :
    mkdir /etc/apache2/ssl.crt/

    on deplace les fichiers :
    cd /etc/apache2/ssl.crt/
    cp /root/private.key ./
    cp /root/www.domaine.tld.chain ./
    cp /root/www.domaine.tld.cert ./
    on change les permissions :
    chmod 400 private.key
    on verifie les permissions
    ll
    total 24
    drwxr-xr-x 2 root root 4096 2007-11-02 18:00 .
    drwxr-xr-x 8 root root 4096 2007-11-02 18:02 ..
    -rw-r--r-- 1 root root 5637 2007-11-02 18:00 www.domaine.tld.cert
    -rw-r--r-- 1 root root 1982 2007-11-02 18:00 www.domaine.tld.chain
    -r-------- 1 root root 1743 2007-11-02 18:00 private.key

    Afin qu'apache ne demande pas la passphrase de la clé privé a chaque redémarrage, Il est conseillé de décrypter la clé au préalable:
    openssl rsa -in private.key > www.domaine.tld.key



  2. Mise en place du VirtualHost

    A l'aide de la commande pico, éditez le fichier /etc/apache2/mods-enabled/ssl.conf
    Ajoutez alors la ligne avant </IfModule> :

    NameVirtualHost 87.xx.xxx.xx:443

    <VirtualHost 87.xx.xxx.xx:443>
    ServerAdmin postmaster@mon-domaine.tld
    DocumentRoot /home/mondomai/www
    ServerName www.mon-domaine.tld
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl.crt/www.domaine.tld.cert
    SSLCertificateKeyFile /etc/apache2/ssl.crt/www.domaine.tld.key
    SSLCACertificateFile /etc/apache2/ssl.crt/www.domaine.tld.chain
    ScriptAlias /cgi-bin/ /home/mondomai/cgi-bin/
    </VirtualHost>

    mondomai est ici le login de votre espace /home/mondomai/, celui-ci est à changer en fonction de votre configuration.

  3. Redemarrez Apache

    /etc/init.d/apache2 restart

    Dans le cas ou vous n'avez pas decrypter la clé privée :
    /etc/init.d/apache2 restart
    Forcing reload of web server (apache2)... waiting Apache/2.2.3 mod_ssl/2.2.3 (Pass Phrase Dialog)
    Some of your private key files are encrypted for security reasons.
    In order to read them you have to provide the pass phrases.

    Server www.mon-domaine.com:443 (RSA)
    Enter pass phrase:

    OK: Pass Phrase Dialog successful.
    .

    En cas d'ECHEC, reportez vous au fichier de log /var/log/apache2/error.log

    Indiquez alors votre passphrase comme demandé (C'est celle que vous avez indiqué à la création de la clé privée private.key) :

    Vérifiez que Apache tourne bien sur le port 443 :

    debian:~# netstat -tanpu | grep ":443"
    tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 11015/apache2


  4. Faites le test d'accès à https://www.mon-domaine.tld/