Chaque sous-domaine a-t-il besoin de son propre certificat SSL?

41

Je suis en train de créer un serveur Websocket qui vivra ws.mysite.example. Je veux que le serveur de socket Web soit crypté SSL ainsi que domain.examplecrypté SSL. Dois-je acheter un nouveau certificat pour chaque sous-domaine que je crée? Ai-je besoin d'une adresse IP dédiée pour chaque sous-domaine que je crée? J'aurai probablement plus d'un sous-domaine.

J'utilise NGINX et Gunicorn sur Ubuntu.

utilisateur974407
la source

Réponses:

44

Je vais répondre à cela en deux étapes ...

Avez-vous besoin d'un certificat SSL pour chaque sous-domaine?

Oui et non, ça dépend. Votre certificat SSL standard sera pour un seul domaine, par exemple www.domain.example. Il existe différents types de certificats que vous pouvez utiliser en plus du certificat standard à domaine unique: certificats de caractère générique et multi-domaines.

  • Un certificat générique sera émis pour quelque chose comme *.domain.exampleet les clients le considéreront comme valable pour tout domaine se terminant par domain.example, tel que www.domain.exampleou ws.domain.example.

  • Un cert multi-domaine est valide pour une liste prédéfinie de noms de domaine. Pour cela, il utilise le champ Subject Alternative Name du cert. Par exemple, vous pouvez indiquer à une autorité de certification que vous souhaitez un certificat multi-domaines pour domain.exampleet ws.mysite.example. Cela lui permettrait d'être utilisé pour les deux noms de domaine.

Si aucune de ces options ne vous convient, il vous faudra alors deux certificats SSL différents.

Ai-je besoin d'une adresse IP dédiée pour chaque sous-domaine?

Encore une fois, c’est un oui et un non… tout dépend de votre serveur Web / d’application. Je suis un gars Windows, je vais donc répondre avec des exemples IIS.

  • Si vous utilisez IIS7 ou une version antérieure, vous devez lier les certificats SSL à une adresse IP et vous ne pouvez pas affecter plusieurs certificats à une seule adresse IP. Cela vous oblige à avoir une adresse IP différente pour chaque sous-domaine si vous utilisez un certificat SSL dédié pour chaque sous-domaine. Si vous utilisez un certificat multi-domaine ou un certificat générique, vous pouvez vous en tirer avec l’adresse IP unique car vous n’avez qu’un seul certificat SSL pour commencer.

  • Si vous exécutez IIS8 ou une version ultérieure, la même chose s'applique. Toutefois, IIS8 + inclut la prise en charge de quelque chose appelé Indication de nom de serveur (SNI). SNI vous permet de lier un certificat SSL à un nom d’hôte, pas à une adresse IP. Ainsi, le nom d'hôte (nom du serveur) utilisé pour effectuer la demande sert à indiquer le certificat SSL qu'IIS doit utiliser pour la demande.

  • Si vous utilisez une seule adresse IP, vous pouvez configurer des sites Web pour répondre aux demandes de noms d'hôtes spécifiques.

Je sais qu'Apache et Tomcat prennent également en charge SNI, mais je ne les connais pas suffisamment pour savoir quelles versions le prennent en charge.

Ligne de fond

En fonction de votre application / serveur Web et du type de certificats SSL que vous pouvez obtenir, vos options seront dictées.

Pkeenan
la source
J'utilise gunicorn et nginx sur Ubuntu.
user974407
Dans ce cas, SNI doit être disponible tant que OpenSSL (pour nginx) est conforme à la prise en charge de SNI. At selon le lien dans la réponse de GomoX.
Pkeenan
Certains certificats de sous-domaine uniques répertorient le domaine principal à titre d'alternative. Vous trouverez peut-être que vous pouvez effectuer www.domain.com et domain.com sur un certificat sur une adresse IP. Veillez à bien prendre en compte votre public cible lorsque vous envisagez SNI: IE sur XP ne le prend pas en charge, ce qui vous affectera avec certains utilisateurs professionnels. Certains anciens navigateurs mobiles, comme celui d'origine Android, ne le font pas au moins jusqu'à la version 2.3.5 qu'il convient de prendre en compte. si vous ciblez des appareils mobiles (beaucoup d’appareils Android utilisent d’anciennes versions).
David Spillett
@pkeenan - Il serait bon que la réponse soit mise à jour pour refléter les fonctionnalités techniques prenant en charge les noms d'hôtes et les domaines sans noms d'hôtes - helpdesk.ssls.com/hc/en-us/articles/…
Motivé
> les clients considéreront cela comme valable pour tout domaine se terminant par «domain.com», tel que «www.domain.com» ou «ws.domain.com». Cela me porte à croire que cela serait également valable pour abc.def.domain.com, est-ce également le cas?
Jeff
7

Vous pouvez obtenir un certificat pour chaque sous-domaine, un certificat pour plusieurs sous-domaines ou un certificat générique (par exemple).*.yoursite.example ).

Cependant, ils coûtent généralement un peu plus cher que les certificats classiques et, du fait de la partage d'un certificat unique, ils ne constituent généralement pas la meilleure option du point de vue de la sécurité, sauf si vous hébergez un anything.mydomain.exampletype d'application où ils constituent le seul choix viable.

De plus, vous n'avez pas besoin de plusieurs adresses IP si vous avez un serveur Web compatible SNI . Ceci dit, la SNI n’est prise en charge que par les navigateurs modernes (IE6 et versions ultérieures ne fonctionneront pas avec elle). Les versions récentes de Nginx et Apache prennent en charge SNI de manière transparente (ajoutez simplement des hôtes virtuels activés pour SSL).

GomoX
la source
Qu'entendez-vous par "pas la meilleure option du point de vue de la sécurité"?
Motivée
4
Un certificat unique partagé avec tous vos hôtes transforme toute violation d'un certificat en menace de sécurité au niveau du domaine, plutôt que d'affecter le sous-domaine auquel le certificat était attaché. Par exemple, le certificat utilisé pour www.votresite.com qui est une installation WordPress serait le même que celui pour les paiements.votite.com qui est une application de traitement de carte de crédit sécurisée. Si le premier fuit, le second est compromis.
GomoX
0

Vous aurez besoin d'un certificat distinct pour chaque sous-domaine ou vous pouvez acheter un certificat générique ( *.domain.example) (plus coûteux), mais qui a du sens si vous hébergez beaucoup de sous-domaines.

En ce qui concerne les adresses IP, cela dépend de la manière dont vous configurez votre serveur. Vous pouvez utiliser des règles de nom d'hôte pour desservir plusieurs sites à partir de la même adresse IP, ou utiliser des adresses IP uniques pour chacun. Les deux méthodes ont leurs avantages et leurs inconvénients.

Jim G.
la source