web-dev-qa-db-fra.com

Génération de CSR pour multi-domaine

Comment générer une CSR pour plusieurs domaines.

J'ai trouvé que la génération de CSR pour un seul domaine est comme ci-dessous:

openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr

Mais comment générer un CSR multi-domaines

31
Elisa

Pour qu'un certificat X.509 prenne en charge plusieurs domaines, il doit utiliser plusieurs entrées DNS de nom alternatif de sujet, selon RFC 2818 (HTTP sur TLS) (ou RFC 6125):

Si une extension subjectAltName de type dNSName est présente, elle DOIT être utilisée comme identité. Sinon, le champ (le plus spécifique) Nom commun du champ Objet du certificat DOIT être utilisé. Bien que l'utilisation du nom commun soit une pratique existante, elle est obsolète et les autorités de certification sont encouragées à utiliser le nom dNS à la place.

La correspondance est effectuée en utilisant les règles de correspondance spécifiées par [RFC2459]. Si plus d'une identité d'un type donné est présente dans le certificat (par exemple, plus d'un nom dNSName, une correspondance dans l'un quelconque de l'ensemble est considérée comme acceptable.)

Comme décrit dans ce document (sauf que j'utiliserais -des3 aussi pour la commande genrsa, pour protéger la clé privée):

  • Faites une copie de votre openssl.cnf fichier (l'original se trouve probablement quelque part sous /etc sous Linux).
  • Modifiez-le pour ajouter req_extensions = v3_req dans le [ req ] section.
  • Modifiez-le pour ajouter subjectAltName=DNS:www.example.com,DNS:www.other-example.com (une DNS: entrée par nom d'hôte dont vous avez besoin) dans le [ v3_req ] section.
  • Faites qu'OpenSSL utilise ce fichier de configuration. Appelez-le avec OPENSSL_CONF=/path/to/your/openssl.cnf openssl req ...

Cela étant dit, je ne m'inquiéterais pas trop de la définition d'une extension dans la RSE. Toute bonne autorité de certification doit ignorer tout ce que vous avez défini dans la CSR et ne définir que ce qu'elle a réellement vérifié lors de l'émission du certificat réel. Ils remplaceront volontiers tout RDN dans votre DN de sujet (par exemple, pays, organisation, ...) ainsi que toute extension (SAN ou utilisation de clé). Premièrement, s'ils laissent toute extension demandée dans le CSR par le demandeur, ce serait un risque pour la sécurité, car certains candidats pourraient vraiment obtenir n'importe quoi. Deuxièmement, c'est ainsi qu'ils gagnent de l'argent supplémentaire, en vous facturant pour définir quelques bits ici et là (par exemple, l'extension de signature de code): ils veilleront à ce que vous n'obteniez que ce que vous avez payé dans votre certificat. Je comprends, cependant, que vous souhaitiez peut-être mettre tous les noms que vous demandez dans votre CSR, juste pour être sûr.

33
Bruno