Tuto obsolète, consulter le tutoriel let's encrypt ici

OUI JE SAIS, CETTE FOUTUE SOURIS S'EST GLISSÉE SUR MES CAPTURES...

Changelog 25/09 :

  • Changement de la méthode de génération de la clé.

  • Modification de la méthode de concaténation du certificat unifié.

  • Ajout de nouvelles règles de sécu pour nginx (thanks to Hardware !).

I - Inscription sur StartSSL

NB : Chrome peut poser problème pour ces étapes, je vous recommande donc l’utilisation de Firefox.

Rendez-vous à cette adresse : https://www.startssl.com/ pour vous enregistrer et remplissez les informations demandées par le site. Vous allez recevoir un code par mail qu’il faudra entrer dans le champs prévu à cet effet dans la page web qui vient de s’afficher.

Vous allez arriver sur une page vous demandant le niveau d’authentification que vous souhaitez.
Choisissez “Haut niveau”.

Info : Pour vous authentifier, StartSSL utilise un certificat qui sera intégré à votre navigateur internet. Cette étape permet donc de générer ce certificat.

Le site va à présent générer le certificat. Cliquez sur “Install” pour l’ajouter à votre navigateur (cette étape peut prendre un peu de temps).

Je vous recommande fortement de sauvegarder ce certificat pour pouvoir l’utiliser sur une autre machine. Pour cela, rendez-vous dans Options > Avancé > Certificats > Afficher les certificats > Vos certificats puis sélectionnez le certificat associé à votre mail et sauvegardez-le.

Vous pouvez ensuite cliquer sur “Finish” et commencer à utiliser les services StartSSL.

II - Validation de votre nom de domaine
Rendez-vous à cette adresse : https://www.startssl.com/?app=12 puis dans l’onglet “Validations Wizard”. Sélectionner “Domain Name Validation” dans le menu déroulant et cliquez sur “Continue”.

Entrez alors votre nom de domaine puis validez. Choisissez sur quelle adresse mail vous souhaitez recevoir le mail de validation (en général postmaster@votre-domaine.fr). Bien-entendu vous devez pouvoir consulter les mails à destination de cette adresse.

Entrez le code reçu dans le champs adéquat et validez (cela peut prendre du temps).
Félicitations, votre domaine est validé.

III - Génération d’un certificat pour votre domaine
Rendez-vous à cette adresse : https://www.startssl.com/?app=12 puis dans l’onglet “Certificates Wizard”. Sélectionner “Web Server SSL/TLS Certificate” dans le menu déroulant et cliquez sur “Continue”.

Sur la page suivante, cliquez sur "Skip".

Vous allez maintenant générer une clé privée encryptée pour votre serveur. On va se placer dans le dossier /etc/ssl/nginx qui nous servira à stocker nos clés et certificats.

mkdir /etc/ssl/nginx
cd /etc/ssl/nginx

Nous allons maintenant générer la clé RSA privée pour le serveur ainsi que le .csr que nous allons fournir à StartSSL

openssl req -nodes -newkey rsa:4096 -sha256 -keyout server.key -out server.csr

Différentes informations vont vous être demandée lors de la génération du certificat. La seule que vous devez remplir obligatoire est le champ "Common name" dans lequel vous devez mettre le domaine/sous-domaine pour lequel vous allez générer votre certificat.

Ouvrez le .csr.

nano server.csr

Copiez-le et allez le coller dans le champ de texte sur la page de StartSSL. Cliquez ensuite sur "Continue"

Nous allons maintenant choisir le sous-domaine pour lequel nous souhaitons générer un certificat SSL. Le domaine principale sera automatiquement ajouté au certificat. Vous pourrez donc l’utiliser à la fois pour le sous-domaine et le domaine.

Vous arrivez alors sur une page résumant les informations relative à votre certificat. Continuez et vous devriez obtenir un message comme quoi votre demande doit être vérifiée par les équipes de StartSSL.

C’est à ce moment là que vous pouvez aller vous servir 2 ou 3 cafés, vous occuper de votre famille ou regarder une petite série en attendant leur retour par mail (De quelques minutes à plusieurs heures...).

IV - Mise en place du certificat sur votre serveur
Une fois le mail reçu, vous pouvez récupérer votre certificat signé à cette adresse : https://www.startssl.com/?app=12 puis dans Toolbox > Retrieve Certificat.



Copiez ce certificat dans un fichier texte pour pouvoir le réutiliser.

On retourne sur notre serveur.
cd /etc/ssl/nginx
nano votre-domaine.fr.crt
Et collez-y votre certificat.

Nous allons maintenant télécharger les fichiers nécessaire au bon fonctionnement de notre certificat sur les serveurs de StartSSL
wget https://www.startssl.com/certs/sub.class1.server.ca.pem
wget https://www.startssl.com/certs/ca-sha2.pem
On va ensuite unifier les deux CA en provenance de StartSSL
cat sub.class1.server.ca.pem >> ca-sha2.pem
Puis on concatène avec notre certificat.
cat votre-domaine.fr.crt ca-sha2.pem > votre-domaine.fr.crt-unified
V - Exemple de configuration : nginx
Si vous avez suivi le tuto ruTorrent :
nano /etc/nginx/sites-enabled/rutorrent.conf
Collez ceci :
ssl on;
ssl_certificate /etc/ssl/nginx/votre-domaine.fr.crt-unified;
ssl_certificate_key /etc/ssl/nginx/server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+AESGCM:AES128+EECDH:AES256+EECDH";

ssl_prefer_server_ciphers on;
ssl_ecdh_curve secp384r1;

ssl_session_cache   shared:SSL:10m;
ssl_session_timeout 10m;

ssl_stapling        on;
ssl_stapling_verify on;

resolver 8.8.4.4 8.8.8.8 valid=300s;
resolver_timeout 10s;

add_header X-Frame-Options "DENY";
add_header X-Content-Type-Options "nosniff";
Ici :
server {
    listen 80;
    server_name votre-domaine.fr;

    location / {
        rewrite ^ https://$server_name$request_uri? permanent;
    }
}

server {
    listen 443 ssl;
    server_name votre-domaine.fr;
    index index.html index.php;
    charset utf-8;

    #############################
    ########### ICI ###############
    #############################

    access_log /var/log/nginx/rutorrent-access.log combined;
    error_log /var/log/nginx/rutorrent-error.log error;
    ...
    ...
    ...
Enregistrez et relancez nginx :
service nginx restart
Et voilà, vous pouvez maintenant accéder au domaine/sous-domaine en https avec un certificat signé et validé.
Vous pouvez recommencer à partir de l'étape III autant de fois que vous le souhaitez pour chacun de vos sous-domaines.


Vous devriez obtenir un A sur ces deux sites :
CryptCheck

SSL Labs


2 ans plus tard
Répondre…