web-dev-qa-db-fra.com

Que signifie exactement "chaque certificat SSL nécessite une adresse IP dédiée"?

J'ai lu un peu sur les certificats SSL, et en particulier j'ai lu qu'un certificat SSL "nécessite une adresse IP dédiée". Maintenant, je ne suis pas sûr de la signification de ceci; Cela signifie-t-il que le certificat nécessite une adresse IP dédiée distincte de l'adresse IP utilisée pour la communication HTTP normale ou simplement qu'il ne peut pas partager l'adresse IP avec d'autres certificats SSL?

Pour clarifier, j'ai un VPS avec une adresse IP dédiée. Le VPS héberge plusieurs sites différents, y compris plusieurs sous-domaines du site principal, mais seul le site principal et les sous-domaines nécessitent SSL. Puis-je simplement acheter un certificat SSL pour * .example.com en utilisant mon adresse IP actuelle ou dois-je en obtenir un autre que les autres sites du VPS? Ou pire encore, dois-je en obtenir un qui soit séparé de tout le trafic HTTP sur le serveur? Gardez à l'esprit qu'aucun des autres sites n'a besoin de SSL.

Merci pour toute clarification sur le sujet.


Edit: Quelques sources pour mes soucis:

http://symbiosis.bytemark.co.uk/docs/symbiosis.html#ch-ssl-hosting

Est-il nécessaire d'avoir une adresse IP dédiée pour installer le certificat SSL?

23
Hubro
  1. Le "certificat SSL" n'existe pas. Le terme est trompeur. Les certificats X.509 peuvent être émis à des fins différentes (comme défini par leurs "propriétés" Utilisation des clés et Utilisation étendue des clés), en particulier pour la sécurisation des sessions SSL/TLS.

  2. Les certificats n'exigent rien en ce qui concerne les sockets, les adresses et les ports car les certificats sont des données pures. 

  3. Lors de la sécurisation d'une connexion avec TLS, vous utilisez généralement le certificat pour authentifier le serveur (et parfois le client). Il y a un serveur par adresse IP/port, il n'y a donc normalement aucun problème pour le serveur de choisir le certificat à utiliser. 

    HTTPS est l'exception - plusieurs noms de domaine différents peuvent désigner une même adresse IP et le client (généralement un navigateur) se connecte au même serveur pour différents noms de domaine. Le nom de domaine est transmis au serveur dans la demande, qui passe après TLS.

    Le problème se pose ici: le serveur Web ne sait pas quel certificat présenter. Pour remédier à cela, une nouvelle extension a été ajoutée à TLS, nommée SNI (Indication du nom du serveur). Cependant, tous les clients ne le supportent pas. C'est donc généralement une bonne idée d'avoir un serveur dédié par IP/Port et par domaine. En d'autres termes, chaque domaine auquel le client peut se connecter via HTTPS doit avoir sa propre adresse IP (ou un port différent, mais ce n'est pas habituel). 

Les certificats SSL ne nécessitent pas d'adresse IP dédiée. Les certificats SSL stockent un nom nom commun. Le navigateur interprète ce nom commun comme le nom DNS du serveur avec lequel ils discutent. Si le nom commun ne correspond pas au nom DNS du serveur avec lequel le navigateur communique, le navigateur émet un avertissement.

Vous pouvez obtenir un certificat wildcard, qui serait admissible pour tous les hôtes d’un domaine donné.

5
Oswald

... donne suite à la réponse de @ Eugene avec plus d'informations sur le problème de compatibilité ...

Selon cette page de namecheap.com SNI ne fonctionne pas sur:

  • Windows XP + toute version Internet Explorer (6,7,8,9)
  • Internet Explorer 6 ou une version antérieure
  • Safari sur Windows XP
  • Navigateur BlackBerry
  • Windows Mobile jusqu'à 6.5
  • Navigateur Nokia pour Symbian au moins sur Series60
  • Opera Mobile pour Symbian au moins sur Series60

Le site Web sera toujours disponible via HTTPS, mais une erreur d’incompatibilité de certificat apparaîtra.

Ainsi, en ce début d’année 2016, je me risquerais à dire: "Si vous construisez un site Web moderne} de toute façon (ne prenant pas en charge les anciens navigateurs), et si le projet est si petit ne pouvez pas vous permettre une adresse IP dédiée, vous pourrez probablement compter sur SNI. " Bien sûr, il y a des milliers d'experts qui seraient en désaccord avec cela, mais nous parlons d'être pratiques, pas parfaits.

3
JoshuaDavid

Le nom commun du certificat SSL doit correspondre au nom de domaine. Vous n'avez aucune condition requise sur l'adresse IP, sauf si cela est une limitation imposée par le fournisseur de certificat ou le logiciel du serveur http.

Edit: en regardant sur le Web, il semble que la rumeur se soit répandue parce que le plugin ssl d’Apache n’a pas (du moins en 2002) de mécanisme pour utiliser un certificat différent basé sur le nom d’hôte. Dans ce cas, vous devrez exécuter deux serveurs Web Apache différents sur les deux adresses IP différentes.

De toute façon, dans votre configuration, vous ne devriez pas avoir de problème à utiliser une seule IP car vous n’avez pas à utiliser deux certificats différents (car vous envisagez d’utiliser un certificat générique).

J'essayerais malgré tout de configurer le serveur Web avec un certificat auto-signé avant de dépenser de l'argent pour une deuxième adresse IP ou un certificat.

Edit 2: référencez la documentation Apache:

http://httpd.Apache.org/docs/2.2/vhosts/name-based.html

Il semble que maintenant (Apache> = 2.2.12) il soit supporté

0
pqnet