# Yunohost, Let’s Encrypt, A+ au SSLLabs

**URL:** https://forum.yunohost.org/t/yunohost-let-s-encrypt-a-au-ssllabs/1855
**Category:** Tutorials
**Tags:** french
**Created:** [August 24, 2016, 1:50pm UTC](https://forum.yunohost.org/t/yunohost-let-s-encrypt-a-au-ssllabs/1855 "2016-08-24T13:50:13Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![genma](https://forum.yunohost.org/user_avatar/forum.yunohost.org/genma/32/746_2.png) [@genma](https://forum.yunohost.org/u/genma)
#### Post date: [August 24, 2016, 1:50pm UTC](https://forum.yunohost.org/t/yunohost-let-s-encrypt-a-au-ssllabs/1855/1 "2016-08-24T13:50:13Z")

</div>

Prérequis pour comprendre cet article :Connaitre Let’s Encrypt, le principe de SSL/TLS, savoir mettre en place la configuration de Let’s Encrypt.

J’ai suivi le tutoriel How to : Install Let’s Encrypt certificates, pas à pas. Ca marche, le certificat est mis en place et permet d’avoir une connexion sécurisée de qualité.

Toutefois, comme je cherche à avoir la configuration TLS (pour les connexions HTTPS) la meilleure possible, j’ai testé l’adresse de mon nom de domaine (et des sous-domaine associé) sur le site [https://www.ssllabs.com/](https://www.ssllabs.com/). Par défaut la configuration est bonne et correct mais ne donne qu’une note de B comme résultat. Ce qui est confirmé avec une extension comme Calomel SSL qui montre que la configuration n’est pas optimum/la plus élevée.

Attention : plus la note est élevée, plus la configuration est stricte et rend incompatible l’accès avec les anciennes versions des navigateurs (d’ordinateur ou d’OS mobile).

N’accédant à ce cloud personnel que par un navigateur récent, Firefox, quelque soit mon appareil (PC ou smartphone), ce n’est pas un soucis et mon but est donc d’obtenir la meilleur note possible.

Par défaut la configuration est bonne mais donne donc un B comme résultat. J’ai donc regardé ce que m’indiquait le résultat du test du SSLLabs, j’ai consulté différents tutoriaux sur comment sécuriser nginx…

J’ai comparé les modifications faites à la configuration nginx conseillée à celle qui est mise en place par défaut par Yunohost, la configuration est bien faite et sécurisée (les algorithmes obsolètes sont désactivés par exemple). J’ai toutefois été un peu plus loin en apportant quelques modifications :

Extrait de la configuration de Nginx /etc/nginx/conf.d/blog.mondomaine.org.conf :

```
ssl_protocols TLSv1.1 TLSv1.2;
#ssl_ciphers ALL:!aNULL:!eNULL:!LOW:!EXP:!RC4:!3DES:+HIGH:+MEDIUM;
# On réduit les différents algos de chiffrement utilisable
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

```

A comparer avec ce que recommande Aeris par exemple, en configuration extrême :  
`TLSv1.2 + EECDH + AESGCM + SHA-2 only :P`

Ce qu’il manque pour avoir une meilleure note, c’est d’avoir du Diffie Hellman. Il faut générer le fichier pour Diffie Hellman, ce qui se fait via :  
`sudo mkdir -p /etc/nginx/ssl &&`  
`sudo openssl rand 48 -out /etc/nginx/ssl/ticket.key &&`  
`sudo openssl dhparam -out /etc/nginx/ssl/dhparam4.pem 4096`

C’est assez long, ça prend une bonne dizaines de minutes (et est très dépendant de la puissance processeur et la génération de nombres aléatoires…)

Ensuite, dans la configuration de Nginx de chacun des domaines et sous-domaine on modifie le fichier de la façon suivante :  
`# nano /etc/nginx/conf.d/blog.mondomaine.org.conf`  
`# Uncomment the following directive after DH generation`  
`# > openssl dhparam -out /etc/ssl/private/dh2048.pem -outform PEM -2 2048`  
`# ssl_dhparam /etc/ssl/private/dh2048.pem;`  
`ssl_dhparam /etc/nginx/ssl/dhparam4.pem;`

Une fois ces modifications apportées, on valide que la configuration nginx est sans erreur  
`nginx -t`

On redémarre alors nginx via  
`service nginx restart`  
Et on peut de nouveau tester la configuration sur le site du SSLLabs. Et normalement on devrait avoir une note supérieure.

---

<div class="post-metadata">

### Author: ![dzamlo](https://forum.yunohost.org/user_avatar/forum.yunohost.org/dzamlo/32/1889_2.png) [@dzamlo](https://forum.yunohost.org/u/dzamlo)
#### Post date: [August 31, 2016, 8:09pm UTC](https://forum.yunohost.org/t/yunohost-let-s-encrypt-a-au-ssllabs/1855/2 "2016-08-31T20:09:02Z")

</div>

Merci pour ce tuto, j’ai un magnifique A+ maintenant.

Mais je ne comprends pas à quoi sert la commande `sudo openssl rand 48 -out /etc/nginx/ssl/ticket.key`. J’ai supprimé le fichier ticket.key, et tous continue de marcher.

---

<div class="post-metadata">

### Author: ![kanhu](https://forum.yunohost.org/user_avatar/forum.yunohost.org/kanhu/32/3518_2.png) [@kanhu](https://forum.yunohost.org/u/kanhu)
#### Post date: [September 15, 2016, 10:01am UTC](https://forum.yunohost.org/t/yunohost-let-s-encrypt-a-au-ssllabs/1855/3 "2016-09-15T10:01:13Z")

</div>

Can you please explain in English, please?

---

<div class="post-metadata">

### Author: ![genma](https://forum.yunohost.org/user_avatar/forum.yunohost.org/genma/32/746_2.png) [@genma](https://forum.yunohost.org/u/genma)
#### Post date: [September 15, 2016, 10:13am UTC](https://forum.yunohost.org/t/yunohost-let-s-encrypt-a-au-ssllabs/1855/4 "2016-09-15T10:13:02Z")

</div>

OK. I’ll translate the main part of this topic to English soon.

---

<div class="post-metadata">

### Author: ![genma](https://forum.yunohost.org/user_avatar/forum.yunohost.org/genma/32/746_2.png) [@genma](https://forum.yunohost.org/u/genma)
#### Post date: [September 15, 2016, 12:21pm UTC](https://forum.yunohost.org/t/yunohost-let-s-encrypt-a-au-ssllabs/1855/5 "2016-09-15T12:21:54Z")

</div>

How to Yunohost, Let’s Encrypt, A+ au SSLLabs How to English Version  
[https://forum.yunohost.org/t/yunohost-let-s-encrypt-a-au-ssllabs-how-to-english-version/?source\_topic\_id=1855](https://forum.yunohost.org/t/yunohost-let-s-encrypt-a-au-ssllabs-how-to-english-version/?source_topic_id=1855)

---

<div class="post-metadata">

### Author: ![yolateng0](https://forum.yunohost.org/user_avatar/forum.yunohost.org/yolateng0/32/163_2.png) [@yolateng0](https://forum.yunohost.org/u/yolateng0)
#### Post date: [September 15, 2016, 6:19pm UTC](https://forum.yunohost.org/t/yunohost-let-s-encrypt-a-au-ssllabs/1855/6 "2016-09-15T18:19:13Z")

</div>

salut merci pour ce tuto  
effectivement c etait l une des questions que j avais posée sur ce post  
[cle-diffie-hellman](https://forum.yunohost.org/t/skip-the-diffie-hellman-key-in-2048-bits-passer-la-cle-diffie-hellman-en-2048-bits-yuno-2-4-debian-jessie/1818)  
très bon tuto…cependant à éviter sur une install #Raspberrypi 😉

---

<div class="post-metadata">

### Author: ![GigaPuddi](https://forum.yunohost.org/user_avatar/forum.yunohost.org/gigapuddi/32/315_2.png) [@GigaPuddi](https://forum.yunohost.org/u/GigaPuddi)
#### Post date: [January 11, 2017, 2:05pm UTC](https://forum.yunohost.org/t/yunohost-let-s-encrypt-a-au-ssllabs/1855/7 "2017-01-11T14:05:37Z")

</div>

Bump !

Je me permet de remonter ce “How to” pour ajouter des renseignements (et suite à la question de dzamlo) concernant la commande suivante:

> openssl rand 48 -out /etc/nginx/ssl/ticket.key

Effectivement générer un ticket ne servira à rien si on ne précise pas dans la conf les paramètres suivants:

> ssl\_session\_cache shared:SSL:10m;  
> ssl\_session\_timeout 24h;  
> ssl\_session\_tickets on;  
> ssl\_session\_ticket\_key /etc/nginx/ssl/ticket.key;

Voir [la doc nginx](http://nginx.org/en/docs/http/ngx_http_ssl_module.html) pour plus de détails sur ces directives.  
Cette doc précise également la chose suivante:

> The directive is necessary if the same key has to be shared between multiple servers

En l’absence de fichier, [nginx se débrouille seul](https://github.com/nginx/nginx/commit/79be6a5462498af8655aaed141f13a1d2a34abc8)

Je m’interroge donc sur l’utilité de sa génération et son utilisation sur une instance yunohost.

---

<div class="post-metadata">

### Author: ![Aleks](https://forum.yunohost.org/user_avatar/forum.yunohost.org/aleks/32/1704_2.png) [@Aleks](https://forum.yunohost.org/u/Aleks)
#### Post date: [January 18, 2023, 8:12pm UTC](https://forum.yunohost.org/t/yunohost-let-s-encrypt-a-au-ssllabs/1855/8 "2023-01-18T20:12:40Z")

</div>


