Votre blog avec de vrais morceaux de SSL !

CAcert-logo-colour-1000

Avoir un vrai certificat signé et approuvé par une autorité de certification SSL, c’est un peu le Graal pour le geek !

Mais voilà, ça coûte souvent (très) cher, pas toujours évident à mettre en place …

Voici donc une méthode simple pour avoir vos propres certificats (oui oui, au pluriel !) @ home et cela gratuitement (c’est la crise ma brave dame !).

I) Inscription sur cacert.org

Commencez par vous inscrire sur https://www.cacert.org/ (certains me diront, qu’il y a startssl qui propose aussi des certificats, mais c’est un vrai parcours du combattant pour s’y inscrire …)
Vous aurez un formulaire à remplir de ce type, attention toutes les infos doivent être vraies ! (car si vous souhaitez aller plus loin, il faudra fournir des pièces d’identités officielles)

Capture d'écran - 27012015 - 13:22:48

 

II) L’interface d’administration

Une fois inscrit, et que vous avez validé les mails …
Vous avez accès au menu suivant :

Capture d'écran - 27012015 - 13:28:13

Vous pouvez vous dès à présent générer un certificat client puis l’installer dans votre navigateur, pour vous connecter plus tard sur cacert.org (ce que je vous recommande et ce qui est même obligatoire si vous souhaitez passer des tests, devenir accréditeur …)

C’est sur ce menu que vous allez générer vos différents certificats, rajouter des domaines, modifier des options …

Mais aussi, pouvoir demander à être accréditer, c’est important, car de base, vous avez 0 points, avec ce nombre bien maigre, vous allez tout de même pouvoir générer vos certifs, mais ils ne seront valident que 6 mois !!

Un poil fatiguant, je vous l’accorde !

Une fois que vous aurez été validé physiquement et à l’aide d’au moins deux pièces d’identités, vous allez obtenir des points.
le premier pallier (la liste complète est ici : https://wiki.cacert.org/FAQ/Privileges ) est à 50 points et vous permets d’avoir des certificats valident 24 mois.

Vous trouverez la liste des accréditeurs proches de chez vous à partir du menu, il y en a un peu partout en France, et il y également des sessions de signature dédiées à ça plusieurs fois par an.

 

 

 

III) Créer son premier certificat

M’enfin revenons à notre mouton, pour le créer (le certificat hein !), il faut commencer par rajouter un domaine dans le menu « Domaines », une fois validé (avec une simple vérification par mail), vous aurez une liste ce ce type :

Capture d'écran - 27012015 - 13:44:17

L’étape suivant se passe sur votre serveur :

On installe le paquet pour générer les clés et les demandes :

apt-get install openssl

Puis on génère une clé (le fichier key) :

openssl genrsa -out server.key 2048

Et enfin une demande de signature (le csr)

openssl req -new -key server.key -out server.csr

Attention à bien répondre aux questions !

retournez sur cacert.org, et ajouter un certificat serveur grâce au menu du même nom (ils ont bien fait les choses !)
puiscollez y votre fichier CSR

Capture d'écran - 27012015 - 13:54:47

Il vous reste à choisir le type de hachage et à valider !
à l’étape suivante, vous aurez votre certificat, que vous aurez à coller sur votre serveur dans le fichier server.crt

nano server.crt

Vous aurez un résumé de ce type :

Capture d'écran - 27012015 - 13:58:27

IV) Modifier votre serveur web

Votre certificat étant créée et validé, vous avez plus qu’à l’utiliser !
voici un exemple sur un serveur web nginx (avec fastcgi) :

nano /etc/nginx/sites-enabled/default-ssl
server {
    root /var/www/;
    listen       443;
    server_name www.sheldon.fr;
    index index.php index.html index.pl;

#ssl
        ssl on;
        ssl_certificate /etc/nginx/ssl/www.sheldon.fr.crt;
        ssl_certificate_key     /etc/nginx/ssl/www.sheldon.fr.key;

location /nginx_status {
    stub_status on;
    access_log off;
    allow 127.0.0.1;
    deny all;
}
    server_name_in_redirect off;
    port_in_redirect off;

    location ~* ^.+\\.(jpg|jpeg|gif|css|png|js|ico)$ {
        access_log        off;
        expires           30d;
    }

    # rewrite rules
    location / {
        if (!-e $request_filename) {
            rewrite  ^/(.*)$  /index.php?q=$1  last;
        }
    }

    location ~ \\.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }

}

Et si vous souhaitez que votre port 80 redirige automatique sur le port 443, faites la modif suivante :

nano /etc/nginx/sites-enabled/default
server {
    listen       80;
    server_name www.sheldon.fr;
    return 301 https://www.sheldon.fr$request_uri;
}

Après avoir redémarré votre serveur web, et consulté votre magnifique site, voici ce que vous obtiendrez (et sans erreur obscure de votre navigateur !)

Capture d'écran - 27012015 - 14:11:00 Capture d'écran - 27012015 - 14:09:42

Alors, happy ? 🙂

Il vous reste plus qu’à faire comme moi et rajouter un certificat par service (messagerie, hébergement divers, xmpp …) et sans oublier de vous faire accréditer !!

Vus : 1202
Publié par Sheldon.fr : 17