web-dev-qa-db-fra.com

Les navigateurs Web mettent-ils en cache les certificats SSL?

Des navigateurs Web mettent-ils en cache les certificats de serveur SSL? Par exemple, si je modifie le certificat SSL sur un serveur Web, tous les navigateurs Web choisiront-ils le nouveau certificat lorsqu'ils se connecteront via SSL, ou est-il possible qu'ils puissent avoir un certificat périmé?

Je pense au scénario lorsqu'un certificat SSL expire et est remplacé par un nouveau sur le serveur Web.

26
Lorin Hochstein

Eh bien, la réponse de RedGrittyBrick est correcte, mais elle ne répond pas vraiment à la question. La question était, si les navigateurs le font, pas s'ils devraient ou ont besoin de le faire.

D'après ce que j'ai entendu dire, MSIE et Chrome font tous deux des certificats en cache et ne les remplacent pas lorsqu'ils obtiennent une nouvelle version tant que l'ancienne est valide. Pourquoi ne font-ils pas cela, ce n'est pas à moi de comprendre, car cela réduit la sécurité.

8
tuexss

No. Voir vue d'ensemble IBM SSL

  1. Le client SSL envoie un message "client hello" qui répertorie des informations cryptographiques telles que la version SSL et, dans l'ordre de préférence du client, les CipherSuites prises en charge par le client. Le message contient également une chaîne d'octets aléatoire utilisée dans les calculs suivants. Le protocole SSL permet au "client hello" d'inclure les méthodes de compression de données prises en charge par le client, mais les implémentations SSL actuelles n'incluent généralement pas cette disposition.

  2. Le serveur SSL répond avec un message "Server hello" contenant la CipherSuite choisie par le serveur dans la liste fournie par le client SSL, l'ID de session et une autre chaîne d'octets aléatoires. Le serveur SSL envoie également son certificat numérique . Si le serveur requiert un certificat numérique pour l'authentification du client, le serveur envoie une "demande de certificat client" comprenant une liste des types de certificats pris en charge et les noms uniques d'autorités de certification acceptables.

  3. Le client SSL vérifie la signature numérique sur le certificat numérique du serveur SSL et vérifie que la CipherSuite choisie par le serveur est acceptable.

résumé de Microsoft est similaire. La poignée de main TLS est également similaire à cet égard.

À l'étape 2, le client ne semble pas avoir le moyen de dire "Ne vous embêtez pas d'envoyer un certificat de serveur, je vais utiliser mon cache".

Notez qu'il existe plusieurs types de certificats, client, serveur et autorité de certification. Certains d'entre eux sont mis en cache.

20
RedGrittyBrick

Je ne suis pas sûr que mon apport aidera de quelque manière que ce soit, mais voici ce que je viens de vivre: j'ai un site Web dans Azure avec un domaine personnalisé. J'ai essayé d'y accéder avec https dans chromes avant de configurer la liaison SSL pour mon nom de domaine. Chrome me disait que le site n'est pas sécurisé, ce qui est parfaitement logique (ERR_CERT_COMMON_NAME_INVALID). Mais après avoir téléchargé mon certificat et configuré la liaison SSL dans Azure, je rencontrais toujours la même erreur. À ce stade, lors de l'ouverture d'une nouvelle fenêtre de navigateur privé (ou à l'aide d'un autre navigateur), le https fonctionnait correctement.

Mais je ne pouvais jamais le faire fonctionner dans ma session Chrome ouverte. J'ai essayé d'effacer l'état SSL, même résultat. Cela a fonctionné après le redémarrage complet de chrome.

J'ai probablement été trompé par quelque chose, mais il semblait presque que le certificat était caché ...

0
Etienne