SSL fait deux choses:
- Crypte votre session http.
- Authentifie le serveur vers le client.
Vous semblez être en se concentrant sur le #2. Un certificat SSL est un tas d'informations sur un site web (de son nom de domaine, la société à laquelle il appartient, sa clé publique, etc.) c'est signé numériquement à l'aide d'une clé privée.
Ce fichier est stocké sur le serveur. Lorsque votre navigateur demande un site utilisant le protocole HTTPS, le serveur envoie son certificat dans le navigateur.
Le navigateur vérifie que le nom de domaine sur le certificat correspond au nom de domaine du site, a également fait en sorte qu'il n'est pas expiré, etc., et vérifie que la signature sur le certificat est correct.
Maintenant, le problème est que nous ne pouvons dire si la signature est correcte, mais comment pouvons-nous savoir QUI l'a signé? Afin de résoudre ce problème, chaque navigateur (et certains systèmes d'exploitation) automatiquement confiance à un certain nombre de soi-disant "racine" des certificats. Il y a plus d'une centaine de certificats racine sur la plupart des ordinateurs. Lorsqu'un administrateur génère un certificat SSL, il a son certificat signé par le propriétaire de l'un de ces certificats racine. Cela comprend des sociétés comme Verisign et Thawte, ainsi qu'une centaine d'autres à travers le monde (y compris certains organismes gouvernementaux).
Le navigateur permet de vérifier que le certificat est signé par l'un des certificats racine qu'il fait déjà confiance. Le navigateur peut également vérifier une liste de révocation pour voir si un cours jusqu'à présent certificat a été révoqué (ce qui peut se produire si un certificat est délivré par erreur à la mauvaise personne). Si l'une de ces étapes de validation échoue, le navigateur affichera un message d'erreur à l'utilisateur.