Certificat VPN Mac : pourquoi le sélecteur d’identité reste vide
Le client a besoin d’un certificat avec sa clé privée, dans un magasin qu’il lit. Vérifiez d’abord l’identité, puis si la passerelle l’accepte.
Vous avez installé le certificat, il apparaît dans Trousseau d’accès avec un nom convivial, et le sélecteur d’identité du client VPN reste vide. Le client ne cherche pas un certificat. Il cherche une identité : un certificat associé à la clé privée qui peut prouver sa possession, stocké là où le client est autorisé à le lire.
Ce que le client demande, c’est une identité
Le cadre de sécurité d’Apple traite un certificat et une identité comme des objets différents. Un certificat est une donnée publique. Une identité est ce certificat plus sa clé privée, et seule l’identité peut relever un défi. Un certificat d’AC de confiance, lui, permet à un client d’évaluer un émetteur ; il ne fait pas de la machine le détenteur d’un justificatif client délivré.
| Item | What it can do | What it cannot do |
|---|---|---|
| CA or server certificate | Validate the gateway's chain | Authenticate this client |
| Client certificate without key | Nothing for authentication | Prove possession of anything |
| Identity (cert plus key) | Answer the authentication challenge | Guarantee the gateway accepts it |
C’est pourquoi importer un fichier .cer ne produit jamais une identité client utilisable. Le fichier ne contient que des éléments publics, et aucun renommage ni aucune approbation n’en fait une paire de clés.
Trois raisons pour lesquelles le sélecteur reste vide
La première est une clé privée manquante, ce qui signifie que le processus d’enrôlement ou d’importation n’en a pas fourni. La deuxième est un magasin que le client ne consulte pas : un profil de portée utilisateur regarde dans le trousseau de l’utilisateur, et un élément placé dans un magasin système peut lui être invisible. La troisième est une inadéquation d’usage ou de stratégie, où le certificat existe mais n’est pas valide pour l’authentification client selon les règles du déploiement.
security find-identity -v -p ssl-client
Cette commande liste les identités que le système considère comme valides pour l’authentification client. Si le compte est zéro, le problème se situe en amont du client VPN et aucune modification de profil ne le corrigera. Si l’identité apparaît ici mais pas dans le client, c’est le magasin ou la portée du client qui fait la différence.
Où vit la clé privée, et qui peut l’utiliser
Lorsque vous importez une identité via Trousseau d’accès, la boîte de dialogue d’importation propose un trousseau de destination. La bonne destination dépend du client et du fait que le profil soit de portée utilisateur ou appareil. Une ancienne réponse recommandant le trousseau système n’est pas une règle universelle, et copier des éléments entre magasins n’est pas une réparation.
System Roots est une collection de confiance. Y placer un certificat change les émetteurs auxquels le système fait confiance ; cela ne crée pas de clé privée et ce n’est pas un magasin d’identités. Déplacer des certificats sans rapport pour remplir un sélecteur est le genre de correctif qui laisse une machine avec un ensemble de confiance élargi de façon permanente.
L’accès à la clé privée est un contrôle distinct. Accorder à chaque application la permission d’utiliser la clé résout le problème de sélection d’un client et confère la même capacité à tout le reste de la machine. Accordez-la au client qui en a besoin, et vérifiez si la clé est protégée par le matériel ou marquée comme non exportable ; si c’est le cas, il faut utiliser le fournisseur pris en charge plutôt qu’une copie exportée.
Comment le profil désigne le justificatif
Dans une configuration IKEv2 native gérée, le profil référence sa charge de justificatif via PayloadCertificateUUID. Ce qui compte, c’est l’identité référencée et la manière dont elle a été provisionnée ; modifier un nom d’affichage dans le profil ne répare pas une référence qui pointe vers la mauvaise charge ou vers une charge qui n’a jamais livré de clé.
Un fournisseur tiers peut utiliser un mécanisme de sélection entièrement différent, comme son propre magasin ou une invite système. Lisez la documentation de ce fournisseur au lieu de transposer des hypothèses de profil natif, et vérifiez la référence dans le profil réellement installé, pas dans le brouillon de la console d’administration.
La sélection et l’acceptation sont deux étapes distinctes
Un sélecteur rempli signifie que le client peut trouver et utiliser une identité. Cela ne dit rien de la question de savoir si la passerelle l’acceptera. Le serveur vérifie encore l’émetteur, la fenêtre de validité, l’état de révocation et l’association de ce justificatif à un compte.
Testez les deux étapes explicitement, dans cet ordre. Confirmez que l’identité est proposée, connectez-vous, puis demandez au propriétaire de la passerelle de confirmer quel justificatif a été présenté et quelle règle d’association l’a consommé. Si le client propose une identité et que le serveur la rejette, le travail restant se trouve côté serveur. Réinstaller le certificat sur le Mac ne changera pas ce résultat, quel que soit le nombre de fois où on le répète.