Les concepts et la terminologie font partie des principaux obstacles aux développeurs lorsqu'ils migrent vers HTTPS. Ce guide fournit une brève présentation de ces deux méthodes.
Résumé
- Utilisé des clés publiques/privées pour signer et déchiffrer les messages échangés entre le navigateur et le serveur.
- Une autorité de certification (CA) est une organisation qui garantit le mappage entre les clés publiques et les noms DNS publics (comme « www.foobar.com »).
- Une demande de signature de certificat (CSR, Certificate Signing Request) est un format de données qui regroupe une clé publique avec des métadonnées sur l'entité propriétaire de la clé
Quelles sont les paires de clés publique et privée ?
Une paire de clés publique/privée est une paire de très grands nombres utilisés comme clés de chiffrement et de déchiffrement, et qui partagent une relation mathématique particulière. Le cryptosystème RSA est un système courant pour les paires de clés. La clé publique est utilisée pour chiffrer les messages, qui ne peuvent être déchiffrés qu'avec la clé privée correspondante. Votre serveur Web annonce sa clé publique dans le monde entier, et les clients (tels que les navigateurs Web) l'utilisent pour amorcer un canal sécurisé vers votre serveur.
Qu'est-ce qu'une autorité de certification ?
Une autorité de certification est une organisation qui garantit le mappage entre les clés publiques et les noms DNS publics (par exemple, "www.foobar.com"). Par exemple, comment un client peut-il savoir si une clé publique particulière est la true clé publique pour www.foobar.com ? A priori, il n'y a aucun moyen de le savoir. Une autorité de certification garantit qu'une clé particulière est bien la vraie pour un site particulier en utilisant sa propre clé privée pour signer de manière cryptographique la clé publique du site Web. Il est impossible de falsifier cette signature d'un point de vue informatique. Les navigateurs (et d'autres clients) gèrent des magasins d'ancre de confiance contenant les clés publiques appartenant à des autorités de certification connues, et ils utilisent ces clés publiques pour vérifier de manière cryptographique les signatures des autorités de certification.
Un certificat X.509 est un format de données qui regroupe une clé publique et des métadonnées sur l'entité propriétaire de la clé. Dans le cas du Web, le propriétaire de la clé est l'opérateur du site, et les métadonnées importantes sont le nom DNS du serveur Web. Lorsqu'un client se connecte à un serveur Web HTTPS, celui-ci présente son certificat au client pour qu'il le vérifie. Le client vérifie que le certificat n'a pas expiré, que le nom DNS correspond au nom du serveur auquel le client tente de se connecter et qu'une autorité de certification d'ancre de confiance connue a signé le certificat. Dans la plupart des cas, les autorités de certification ne signent pas directement les certificats de serveur Web. Il existe généralement une chaîne de certificats reliant une ancre de confiance à un signataire ou à des signataires intermédiaires, et enfin au certificat du serveur Web (l'entité de fin).
Qu'est-ce qu'une requête de signature de certificat ?
Une requête de signature de certificat (CSR) est un format de données qui, à l'instar d'un certificat, regroupe une clé publique et des métadonnées concernant l'entité propriétaire de la clé. Cependant, les clients n'interprètent pas les requêtes de signature de certificat, contrairement aux autorités de certification. Lorsque vous souhaitez obtenir une autorité de certification pour la clé publique de votre serveur Web, vous envoyez une requête de signature de certificat à l'autorité de certification. L'autorité de certification valide les informations contenues dans la requête de signature de certificat et les utilise pour générer un certificat. L'autorité de certification vous envoie ensuite le certificat final et vous installez ce certificat (ou, plus probable, une chaîne de certificats) et votre clé privée sur votre serveur Web.