Certificates TLS robustes avec acme.sh
384-bit de https
Attention
Je ne suis pas du tout un expert en sécurité. J’aime juste les trucs nouveaux et stylés des internets.
C’est pourquoi j’ai modifié mes certificats TLS par défaut pour utiliser la cryptographie à courbe elliptique (ECC) au lieu de RSA. J’ai maintenant un joli 100/100 sur tls.imirhil.fr
Vous pouvez en apprendre (beaucoup) plus ici et sur les liens cités (en anglais).
Prérequis
Installer acme.sh
Pour des raisons de simplicité et d’automatisation, j’utilise acme.sh
Changer l’authorité par défaut
Par défaut, acme.sh utilise ZeroSSL pour signer les certificats. Il faut changer ce paramètre pour Let’s Encrypt car, d’après acme.sh, ils sont les seuls à proposer des certificats ECC.
Utiliser l’api DNS
Si vous en avez la possibilité, la façon la plus simple de générer un certificat est via l’api de votre fournisseur DNS. acme.sh supporte énormément de fournisseurs DNS.
Definir la clé api
Suivez la documentation pour votre fournisseur DNS, généralement:
Émettre le certificat
Utiliser le mode standalone
Si vous n’avez pas accès aux réglages DNS, le mode standalone permet de lancer un serveur web temporaire qui s’occupe de toutes les vérifications.
Le port 80
doit être disponible.
Exemples
Multi domaines standalone
Wildcard domaine DNS
Étapes supplémentaires
Le certificat ECC seul ne suffira pas à obtenir un score élevé/parfait.
Version TLS
Limiter la version TLS à 1.2 et 1.3 (voire uniquement 1.3 vu la différence de compatibilité de 5% avec 1.2).
HSTS
Utiliser le header strict transport security.
Suite cryptographique
Utiliser une suite cryptographique récente et robuste. C’est ici que mes connaissances deviennent limitées… J’ai encore un peu de mal à comprendre quelles suites fonctionnent bien et pourquoi.
J’avais basé ma première suite sur cette liste, en la comparant avec celle de la compatibilité (d’anciens ?) navigateurs.
J’ai ensuite demandé à Aeris, le créateur de tls.imirhil.fr, ses conseils sur cette suite. Il m’a recommandé d’utiliser :
Afin d’atteindre un score de 100/100, il est possible de restreindre un peu plus la suite comme ceci :