Como configurar onde o servidor OpenVPN lê os certificados do cliente?

Como configurar onde o servidor OpenVPN lê os certificados do cliente?

Executamos servidores OpenVPN em várias instâncias com escalonamento automático (para redundância e autocorreção), portanto, eles são provisionados de maneira com script. Nossa abordagem para gerenciar certificados de clientes nessas instâncias efêmeras é bastante desajeitada e atualmente envolve a extração de um tarball para o /etc/openvpn/easy-rsa/pkidiretório.

Gostaria de mover apenas os certificados do cliente para um diretório de rede compartilhado, mas não consegui descobrir quais configurações informam o openvpn sobre esses subdiretórios pki. ( ca/cert/key/dhTodas as configurações apontam profundamente na hierarquia, ou seja /etc/openvpn/easy-rsa/pki/issued/server.crt, o que implica para mim que não haveria nenhuma suposição interna sobre a estrutura de diretórios easy-rsa.)

Como o openvpn encontra esses arquivos?

Responder1

Olá e obrigado pela pergunta...

É um pouco mais fácil do que você pensa ;-). Você não precisa de todos os certificados de cliente. Certificados de cliente são necessários para o cliente...

Ao lado do arquivo de configuração existem 3-4 arquivos gerados e "vinculados" que podem ser incorporados diretamente como seção no arquivo de configuração (estes são tudo que você precisa ter no servidor/cliente).

  • Chave TLS (opcional, mas não é ruim de usar ;-))

Esta é uma chave compartilhada para proteger a comunicação antes mesmo de iniciar o tráfego específico do cliente - sem conhecer esta chave o servidor simplesmente ignora sua comunicação. Este arquivo é o mesmo no servidor e no cliente

  • Autoridade de certificação CA qual é o certificado usado para confirmar a confiança do lado remoto.

    • servidor: Certificado da autoridade que emite o certificado do cliente. ISTO é o que você está procurando - pois este arquivo pode ser usado para verificar TODOS os certificados de clientes emitidos durante a conexão. Este único arquivo pode ser usado para verificar certificados atuais e também futuros emitidos pela mesma CA (que é o que é coberto pelo easy-rsa)

    • cliente: este arquivo é usado para verificar se o certificado do servidor é confiável. Pode ser o mesmo que no lado do servidor, mas tecnicamente o certificado do servidor pode ser emitido por uma CA diferente dos certificados dos clientes.

  • chave

chave privada usada para proteger a comunicação. Este arquivo deve ser mantido seguro, pois é o arquivo que confirma sua identidade.

  • certificado

certificado (chave pública “embrulhada” com informações adicionais relacionadas à Autoridade Certificadora em estrutura X.509). Este arquivo pode até estar disponível publicamente, pois é usado apenas para verificar a validade da comunicação (que a chave usada para a assinatura é realmente "aquela" confiável).


Como você mencionou easy-rsa, o CA é provavelmente o mesmo para o cliente e o servidor. Depois de ter uma chave TLS comum, um arquivo CA comum e uma chave própria com o certificado correspondente, você terá tudo o que precisa para que funcione.

Depois de gerar a chave e o certificado para o usuário e entregá-los ao usuário (ou pelo menos enviá-los), você não precisará mais deles e essa chave + certificado do usuário poderá até ser excluída do servidor ...

Na "grande" Autoridade de Certificação, a chave do usuário nem é conhecida pelo servidor emissor, pois a solicitação de certificação contém a chave pública (informações derivadas da chave privada), que é necessária para criar o certificado assinado - a chave é gerada no lado do cliente e nunca deixe isso pelo processo...

informação relacionada