web-dev-qa-db-fra.com

Comment faire en sorte que Safari utilise automatiquement un certificat client particulier pour tout un site?

L'utilisation de certificats clients avec Safari pose un certain nombre de problèmes:

  • Safari demande de sélectionner un certificat client sur chaque page du site (ennuyeux)
  • Safari peut même vous redemander de choisir un certificat sur une page déjà visitée, notamment si vous devez mettre à jour votre certificat client.

Comment puis-je résoudre ces problèmes?

23
apinstein

Les certificats clients de Safari et les préférences associées sont stockés dans Keychain Manager avec un type de certificat.

Lorsque vous sélectionnez un certificat à utiliser avec un site Web, il enregistre une autre entrée dans le Gestionnaire de trousseau avec un type de préférence d'identité. Malheureusement, par défaut, il ne la stocke que pour la page exacte sur laquelle vous vous trouviez. Le nom et l'emplacement sont définis sur l'URL de la page.

Pour résoudre ce problème, vous pouvez simplement modifier l'une des entrées de préférence d'identité et changer la section en URL de base, comme https://somesslsite.com/ (la barre oblique finale est importante!). Je mets également à jour le nom vers la même chose pour éviter toute confusion. Vous pouvez ensuite supprimer toutes les autres préférences d'identitéde ce site.

Si vous avez un certificat qui a expiré et que vous avez dû en ajouter un nouveau, je vous recommanderais de supprimer l'ancien certificatet tous les éléments connexes . préférence d'identitéentrées.

Pour trouver certificatet préférence d'identitéentrées, ouvrez le trousseau, assurez-vous que Tous les élémentsest sélectionné et recherchez l'URL partielle et/ou le nom du certificat, selon le cas. Vous n'en avez probablement pas beaucoup, donc si cela ne fonctionne pas, triez simplement la liste par kindet vous devriez pouvoir les trouver facilement.

NOTE: Je réponds moi-même puisque je l'ai compris, mais je voulais conserver les connaissances pour moi et pour les autres.

24
apinstein

Les chemins partiels et les caractères génériques sont désormais pris en charge dans les versions les plus récentes d'OS X. Vous pouvez donc utiliser le Keychain Manager pour créer une préférence d'identité pour l'ensemble d'un site Web et/ou d'un domaine.

Exemple de chemin partiel (notez que la barre oblique finale est obligatoire!):

https://server.mydomain.com/

Exemple générique:

*.mydomain.com

Tous les détails ici (de la page 'man security'):

Avant la version 10.5.4, les préférences d’identité pour l’authentification du client SSL/TLS ne pouvaient être définies que par URL. L'URL visitée doit correspondre exactement au nom du service pour que la préférence soit effective.

En 10.5.4, il est devenu possible de spécifier des préférences d'identité pour chaque serveur, en utilisant un nom de service avec une URL de chemin partielle pour faire correspondre des chemins plus spécifiques sur le même serveur. Par exemple, si une préférence d’identité pour " https://www.Apache-ssl.org/ " existe, elle sera effective pour " https://www.Apache-ssl.org/cgi/cert-export ", etc. Notez que les URL de chemin partiel doivent se terminer par une barre oblique.

À partir de 10.6, il est possible de spécifier des préférences d'identité pour chaque domaine, en utilisant le caractère générique * comme composant le plus à gauche du nom du service. Contrairement aux caractères génériques SSL, un caractère générique de préférence d'identité peut correspondre à plusieurs sous-domaines. Par exemple, une préférence d’identité pour le nom *.army.mil correspondra à server1.subdomain1.army.mil ou server2.subdomain2.army.mil. De même, une préférence pour *.mil correspondra à la fois à server.army.mil et à server.navy.mil.

16
DanJ

J'ai moi-même eu du mal avec cela et la réponse ci-dessus m'a fait comprendre ce qui se passait.

Si vous aviez un certificat pour un site Web et que celui-ci a expiré, vous devez supprimer l'ancien certificat. Ensuite, supprimez également les éléments de type de préférence d'identité pour ce site Web. Ces anciens articles ont la même expiration que le certificat. Une fois que vous les aurez supprimées, toute nouvelle préférence d’identité sera stockée et utilisée correctement.

Alors:

  1. Supprimer l'ancien certificat
  2. Supprimer les éléments de préférence d'identité de l'ancien certificat
  3. Ajouter un nouveau certificat

Ensuite, vous pouvez naviguer sur le site Web, sélectionner le nouveau certificat dans la liste, cela sera mémorisé pour cette adresse Web spécifique. Nous sommes actuellement à Safari 5.1.3 et cette version n’utilisera aucun caractère générique pour les préférences, vous devrez ajouter la préférence pour chaque changement d’adresse Web ... J'espère que cela aidera quelqu'un, il suffit de l'indiquer trouver une réponse complète.

3
Chris