SSL à l'arrache, épisode 2

Le premier épisode est ici. En gros, je voulais rapidement générer un certificat SSL/TLS à des fins de tests.

Mais pourquoi un deuxième épisode ? Parce qu'il manquait quelque chose au premier, c'est la facilité d'automatisation. Alors bon, pour un site public, aujourd'hui, Let's Encrypt fait très bien le travail et il vaut mieux se diriger vers cela. Mais dans le cas d'un site de tests, voire utilisé uniquement dans un LAN, c'est moins évident.

Retournons-donc à ce bon vieil OpenSSL et à sa page de manuel. Les autres pages de manuel sont fort utiles, elles aussi. On peut alors arriver à une seule commande créant un CSR puis un certificat. En utilisant l'argument -subj on peut alors indiquer directement sur la ligne de commande les informations de type pays, province, ainsi que le common name. On peut d'ailleurs ajouter plusieurs noms en ajoutant plusieurs directives de type "CN".

Voici un exemple de création de certificat auto-signé, valable un an :

openssl req -x509 -nodes -days 365 -newkey rsa:4096 \\
  -keyout default.key \\
  -out default.crt \\
  -subj '/C=FR/ST=IdF/L=Paris/O=Example Org/OU=Dev/CN=example/CN=example.org/CN=www.example.org'

Des remarques, des propositions d'améliorations ? Les commentaires sont là pour ça !

Commentaires

Le 09/01/2017 10:33 par utux

Des remarques, des propositions d'améliorations ? Les commentaires sont là pour ça !

Oui, sous debian/ubuntu quand tu installe 'ssl-cert' (qui vient souvent avec ca-cert et openssl) tu as un certificat auto-signé (généré lors de l'installation). /etc/ssl/private/ssl-cert-snakeoil.key et /etc/ssl/certs/ssl-cert-snakeoil.pem

ça peut faire gagner un peu de temps :)

Le 10/01/2017 09:31 par Nils

Merci utux pour ta proposition !

Je suis allé jeter un oeil au paquet source ssl-cert, et je ne suis pas totalement convaincu :

  • d'abord, l'outil semble vraiment pensé uniquement pour Debian, dès le début, le script essaie de sourcer des fichiers spécifiques (/usr/share/debconf/confmodule) ;
  • ensuite, le fait qu'il ne semble utiliser que le nom d'hôte de la machine, il n'y a pas moyen d'utiliser un nom alternatif dans le script ;
  • enfin, la clé générée n'a une longueur que de 2048 bits ; on pourra néanmoins argumenter que cela est paramétrable, et que de toute façon c'est un certificat par défaut qui a pour but d'être temporaire.