Certificats et confiance
Leçon 40 sur 47 du cours Réseautage avec le terminal de Coddy.
Pendant la négociation, le serveur présente un certificat : un document indiquant pour quel hôte il est destiné, quand il expire et qui s’en porte garant.
N’importe qui peut en générer un en prétendant qu’il concerne n’importe quel hôte ; c’est donc la signature qui compte. Les certificats sont signés par une autorité de certification, et votre machine est fournie avec une liste des autorités auxquelles elle fait confiance :
ls -l /etc/ssl/certs/ca-certificates.crtVotre client vérifie trois choses : que le certificat est signé par une autorité figurant dans cette liste, qu’il n’a pas expiré et que le nom qui y figure correspond à l’hôte que vous avez demandé. Si l’une de ces vérifications échoue, la connexion est interrompue.
C’est pourquoi ce dernier contrôle échoue souvent lorsqu’un service interne est accessible par son adresse IP, même avec un certificat valide : le certificat correspond à un nom, tandis que vous avez fourni un numéro.
Défi
MoyenTrouvez la liste des autorités auxquelles votre machine fait confiance.
Vérifiez que le bundle CA existe à l’emplacement /etc/ssl/certs/ca-certificates.crt et affichez ca bundle present s’il existe, ou missing dans le cas contraire.
Sortie attendue :
ca bundle presentChaque connexion TLS que vous établissez est vérifiée par rapport à ce fichier.
Essayez vous-même
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Réseautage avec le terminal
1Comment les réseaux communiquent
Qu’est-ce qu’un réseauClients et serveursAdresses IPVotre première requête2Noms et DNS
Pourquoi les noms existentLe fichier hostsRechercher un nomTypes d’enregistrementsRécapitulatif : les noms5HTTP à la main
Anatomie d’une requêteMéthodes de requêteCodes d’étatEn-têtes de réponseRédiger une réponseRécapitulatif : notions de base sur HTTP8HTTPS et TLS
Pourquoi HTTPSLe schéma choisit le portCertificats et confianceQuand TLS échoueRécapitulatif : HTTPS3Ports et sockets
Qu’est-ce qu’un portPorts bien connusLocalhostÉcoute ou connexionRécapitulatif : les ports6curl en profondeur
Afficher les en-têtesEnregistrer les réponsesEn-têtes personnalisésStatut et duréeCodes de sortie de curlRécapitulatif : options de curl9Authentification et débogage
Clés API et BearerL’agent utilisateurDélais d’attente et nouvelles tentativesLire un échecRécapitulatif : débogageEntraînez-vous par vous-même : Playground Terminal