Por que o cryptoapicert falha no OpenVPN 3 e no Connect no Windows
A diretiva pertence a um cliente Windows, não ao protocolo. A biblioteca central expõe retornos de chamada de assinatura, e a interface tem o seu próprio fluxo de importação.
Você copia um perfil OpenVPN 2 funcional para um cliente Windows mais recente, e o certificado que o cliente antigo encontrava sozinho já não é oferecido. A linha que tornava isso possível é um seletor específico do Windows que pertence ao cliente Community 2, e a aplicação mais recente é outro programa com outro caminho de credenciais. O perfil não mudou exceto essa linha, e é exatamente isso que torna a diferença difícil de ver.
Três camadas confundem-se nesse relatório: o cliente Community, a biblioteca central e a interface que alguém instalou. Apenas uma delas alguma vez entendeu a diretiva.
O que a opção significa onde ela existe
No cliente Community OpenVPN 2 no Windows, cryptoapicert designa um certificado que o cliente deve localizar no armazenamento de certificados do Windows em vez de num ficheiro. É uma comodidade específica do Windows, e funciona porque esse cliente sabe enumerar o armazenamento e entregar a chave resultante à sua própria pilha TLS. A diretiva faz, portanto, parte da linguagem de configuração desse cliente, não de uma propriedade do protocolo OpenVPN. Nada no formato de transmissão a transporta.
Copie a mesma linha para outra aplicação e você copiou uma palavra que o novo programa pode analisar, ignorar ou rejeitar. Uma diretiva não é uma característica do protocolo, e esta não é sequer uma característica de todos os clientes que falam OpenVPN.
O que a biblioteca central expõe em vez disso
O OpenVPN 3 Core é uma biblioteca que outras aplicações incorporam, e trata as credenciais externas por meio de uma API em vez de uma procura no armazenamento. A aplicação que a incorpora fornece uma cadeia de certificados e, mais tarde, pede à biblioteca que assine com uma chave externa, e a biblioteca chama de volta a aplicação para o fazer. É um desenho mais geral, e significa que a interface decide quais fornecedores existem. No próprio tratamento de opções da biblioteca, cryptoapicert aparece entre as diretivas que não estão implementadas, o que é coerente com essa divisão de responsabilidades.
A existência desses retornos de chamada não significa que uma determinada aplicação empacotada enumere o armazenamento pessoal do utilizador atual, suporte um fornecedor de chaves específico ou consiga concluir um pedido de cartão inteligente. São propriedades da interface, e cada uma tem de ser documentada pela interface.
O que a interface do Windows faz em vez disso
O OpenVPN Connect segue outra via: o operador importa um ficheiro PKCS#12 que contém o certificado e a sua chave privada para um OpenVPN Certificate Store criado para esse efeito, e depois atribui o certificado externo ao perfil. É um passo de importação deliberado, não uma descoberta automática do que esteja no armazenamento pessoal. A distinção importa quando alguém assume que um certificado instalado para outro fim aparecerá simplesmente na lista do cliente.
A importação também tem uma consequência para a política de chaves, porque exportar uma chave para um ficheiro P12 é exatamente o que uma chave não exportável se destina a impedir. É uma questão de política e não de configuração, e merece resposta antes de alguém tentar a importação.
Escolha uma via que corresponda à política da chave
Se a credencial for exportável e a política permitir a importação documentada, use o processo de registo protegido da organização e mantenha o P12 temporário e a sua palavra-passe fora dos registos e dos scripts. Se a chave nunca puder sair de um cartão inteligente ou de um fornecedor protegido, escolha uma combinação de cliente e fornecedor que suporte explicitamente esse requisito, ou obtenha confirmação do fornecedor para a versão que instalou. Nenhum dos ramos é uma alternativa ao outro.
Voltar a acrescentar a diretiva ao perfil não pode fornecer uma integração que a aplicação não tem. Nem uma versão mais recente do cliente a acrescenta necessariamente, porque a capacidade pertence ao desenho da própria interface.
Depois de a chave local funcionar, o servidor continua a verificar a identidade do certificado, a cadeia e a autorização. Uma chave local utilizável e uma identidade VPN aceita são resultados separados, e mantê-los separados é o que impede que uma limitação da interface se transforme numa política de certificados enfraquecida.