web-dev-qa-db-fra.com

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

Je crée un serveur websocket qui vivra sur ws.mysite.example. Je souhaite que le serveur de socket Web soit crypté SSL ainsi que domain.example pour être crypté 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 fonctionnant sur Ubuntu.

47
user974407

Je répondrai à cela en deux étapes ...

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

Oui et non, cela 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 mettre à part le certificat de domaine unique standard: certificats génériques et multi-domaines.

  • Un certificat générique sera émis pour quelque chose comme *.domain.example et les clients considéreront cela comme valide pour tout domaine se terminant par domain.example, tel que www.domain.example ou ws.domain.example.

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

Si aucune de ces options ne vous convient, vous devez disposer de deux certificats SSL différents.

Ai-je besoin d'une 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 IIS exemples.

  • Si vous exécutez IIS7 ou une version antérieure, vous êtes obligé de lier des certificats SSL à une IP et vous ne pouvez pas attribuer plusieurs certificats à une seule 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 sortir avec l'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. Cependant, IIS8 + inclut la prise en charge de quelque chose appelé Server Name Indication (SNI). SNI vous permet de lier un certificat SSL à un nom d'hôte, pas à une IP. Le nom d'hôte (nom du serveur) utilisé pour effectuer la demande est donc utilisé pour indiquer le certificat SSL que 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.

Conclusion

En fonction de votre application/serveur Web et du type de certificats SSL que vous pourrez obtenir, vous dicterez vos options.

53
pkeenan

Vous pouvez obtenir un certificat pour chaque sous-domaine, un certificat de sous-domaine multiple ou un certificat générique (pour *.yoursite.example).

Cependant, ils coûtent généralement un peu plus que les certificats normaux et, comme vous partagez un seul certificat, ils ne sont généralement pas la meilleure option du point de vue de la sécurité, sauf si vous hébergez un anything.mydomain.example type d'application où ils sont le seul choix réalisable.

Vous n'avez pas non plus besoin de plusieurs adresses IP si vous avez un serveur Web compatible SNI . Cela dit, SNI n'est pris en charge que dans les navigateurs modernes (IE6 et les versions antérieures ne fonctionneront pas avec). Les versions récentes de Nginx et Apache prennent en charge SNI de manière transparente (il suffit d'ajouter des hôtes virtuels compatibles SSL).

8
GomoX

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

En ce qui concerne les adresses IP, cela dépend de la façon 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 IP, ou utiliser des adresses IP uniques pour chacun. Les deux méthodes présentent des avantages et des inconvénients.

0
Jim G.