Certificado VPN do Mac: por que o seletor de identidade fica vazio
O cliente precisa de um certificado com a sua chave privada, num armazém que consiga ler. Verifique primeiro a identidade e depois se o gateway a aceita.
Instalou o certificado, ele aparece no Acesso às Chaves com um nome descritivo e o seletor de identidade do cliente VPN continua vazio. O cliente não procura um certificado. Procura uma identidade: um certificado emparelhado com a chave privada que consegue provar a posse, guardado onde o cliente tem permissão para o ler.
O que o cliente pede é uma identidade
A estrutura de segurança da Apple trata um certificado e uma identidade como objetos diferentes. Um certificado são dados públicos. Uma identidade é esse certificado mais a sua chave privada, e só a identidade consegue completar um desafio. Um certificado de AC fidedigna, por sua vez, permite ao cliente avaliar um emissor; não torna a máquina titular de uma credencial de cliente emitida.
| 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 |
É por isso que importar um ficheiro .cer nunca produz uma identidade de cliente utilizável. O ficheiro contém apenas material público, e por muito que o renomeie ou o marque como fidedigno, não o transforma num par de chaves.
Três razões pelas quais o seletor fica vazio
A primeira é uma chave privada ausente, o que significa que o processo de inscrição ou de importação não a forneceu. A segunda é um armazém que o cliente não consulta: um perfil com âmbito de utilizador procura no porta-chaves do utilizador, e um item colocado num armazém de sistema pode ser-lhe invisível. A terceira é uma incompatibilidade de finalidade ou de política, em que o certificado existe mas não é válido para autenticação de clientes segundo as regras da implementação.
security find-identity -v -p ssl-client
Isto lista as identidades que o sistema considera válidas para autenticação de clientes. Se a contagem for zero, o problema está a montante do cliente VPN e nenhuma edição do perfil o resolverá. Se a identidade aparecer aqui mas não no cliente, a diferença está no armazém ou no âmbito do cliente.
Onde vive a chave privada e quem a pode usar
Quando importa uma identidade através do Acesso às Chaves, a caixa de diálogo de importação oferece um porta-chaves de destino. Qual é o destino correto depende do cliente e de o perfil ter âmbito de utilizador ou de dispositivo. Uma resposta antiga que recomenda o porta-chaves do sistema não é uma regra universal, e copiar itens entre armazéns não é uma reparação.
O System Roots é uma coleção de confiança. Colocar lá um certificado altera os emissores em que o sistema confia; não cria uma chave privada e não é um armazém de identidades. Mover certificados não relacionados para encher um seletor é o tipo de correção que deixa uma máquina com um conjunto de confiança permanentemente alargado.
O acesso à chave privada é um controlo separado. Conceder a todas as aplicações permissão para usar a chave resolve o problema de seleção de um cliente e entrega a mesma capacidade a tudo o resto na máquina. Conceda-o ao cliente que precisa dele e verifique se a chave é protegida por hardware ou marcada como não exportável; se for, é preciso usar o fornecedor suportado em vez de uma cópia exportada.
Como o perfil aponta para a credencial
Numa configuração IKEv2 nativa gerida, o perfil referencia o seu payload de credenciais através de PayloadCertificateUUID. O que importa é a identidade referenciada e a forma como foi aprovisionada; editar um nome de apresentação no perfil não repara uma referência que aponta para o payload errado ou para um que nunca entregou uma chave.
Um fornecedor terceiro pode usar um mecanismo de seleção completamente diferente, como o seu próprio armazém ou um pedido do sistema. Leia a documentação desse fornecedor em vez de transferir pressupostos de perfis nativos, e verifique a referência no perfil que está realmente instalado, não no rascunho da consola de gestão.
Seleção e aceitação são marcos separados
Um seletor preenchido significa que o cliente consegue encontrar e usar uma identidade. Não diz nada sobre se o gateway a vai aceitar. O servidor continua a verificar o emissor, a janela de validade, o estado de revogação e o mapeamento dessa credencial para uma conta.
Teste as duas fases explicitamente, nessa ordem. Confirme que a identidade é oferecida, ligue-se e depois peça ao proprietário do gateway que confirme que credencial foi apresentada e que regra de mapeamento a consumiu. Se o cliente oferece uma identidade e o servidor a rejeita, o trabalho restante está do lado do servidor. Reinstalar o certificado no Mac não alterará esse resultado, por muitas vezes que se repita.