Comment puis-je faire en sorte que Safari utilise automatiquement un certificat client particulier pour un site entier?

27

L'utilisation de certificats clients avec Safari présente 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 demander à nouveau de choisir un certificat sur une page que vous avez déjà visitée, en particulier si vous devez mettre à jour votre certificat client

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

apinstein
la source

Réponses:

29

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

Lorsque vous sélectionnez un certificat à utiliser avec un site Web, il stocke une autre entrée dans le gestionnaire de trousseaux avec une sorte de préférence d'identité . Malheureusement, par défaut, il ne le 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 where en URL de base, comme https://somesslsite.com/(la barre oblique de fin est importante!). Je mets également à jour le nom pour la même chose pour éviter toute confusion. Vous pouvez ensuite supprimer toutes les autres entrées de préférence d'identité pour ce site.

Si vous avez un certificat qui a expiré et que vous avez dû en ajouter un nouveau, je vous recommande de supprimer les anciennes entrées de certificat et toutes les entrées de préférence d'identité associées .

Pour rechercher des entrées de préférence de certificat et d' identité , ouvrez le Gestionnaire de trousseaux, assurez-vous que Tous les éléments est 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 type et vous devriez pouvoir les trouver facilement.

REMARQUE: je réponds à cela moi-même depuis que je l'ai compris, mais je voulais persister dans mes connaissances et celles des autres.

apinstein
la source
2
Malheureusement, Safari continue de demander chaque sous URL ...: - /
Tafkadasoh
commentaire supprimé. La réponse de DanJ explique déjà cela.
Calon
1
Non pas que vous deviez mettre à jour la propriété location . Le nom n'est pas suffisant.
andy
19

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

Exemple de chemin partiel (notez que la barre oblique de fin est requise!):

https://server.mydomain.com/

Exemple de caractère générique:

*.mydomain.com

Tous les détails ici (à partir de la page 'sécurité homme'):

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

Dans la version 10.5.4, il est devenu possible de spécifier les préférences d'identité sur une base par serveur, en utilisant un nom de service avec une URL de chemin partiel pour 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 en vigueur pour " https://www.apache-ssl.org/cgi/cert-export ", etc. Notez que les URL de chemin partielles doivent se terminer par une barre oblique de fin.

À partir de 10.6, il est possible de spécifier les préférences d'identité sur une base par 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.milcorrespondra à server1.subdomain1.army.milou server2.subdomain2.army.mil. De même, une préférence pour *.milcorrespondra à la fois à server.army.milet server.navy.mil.

DanJ
la source
A fonctionné pour moi (exécutant Safari 7.0.1 sur Mac OS X 10.9.1)
Tafkadasoh
3

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

Si vous aviez un certificat pour un site Web et qu'il a expiré, vous devez supprimer l'ancien certificat. Supprimez également les éléments de type de préférence d'identité pour ce site Web. Ces anciens éléments ont autant expiré que le certificat. Après les avoir supprimés, toute nouvelle préférence d'identité sera stockée et utilisée correctement.

Donc:

  1. Supprimer l'ancien certificat
  2. Supprimer les anciens éléments de préférence d'identité du 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. Actuellement, nous sommes à Safari 5.1.3 et cette version n'utilisera pas de caractères génériques pour les préférences, vous devrez ajouter la préférence pour chaque changement d'adresse Web ... J'espère que cela aide quelqu'un, juste le mettre ici parce que je ne l'ai pas fait trouver une réponse complète.

Chris
la source
veuillez vous référer à la réponse @apinstein pour savoir comment le faire correctement
dwery