Openvpn que assina certificados com o CA errado

2

Eu tenho um servidor openvpn ubuntu funcional (até agora).

Acho que meu servidor está usando uma CA errada para assinar os CRTs do cliente.

Por exemplo:

Eu uso "source ./vars" seguido por "./build-key john.doe" e tudo funciona ok (trabalhando ok, quero dizer que recebo o csr, crt e key do john.doe).

Mas se eu testar o crt com: "openssl verify -CAfile ca.crt keys / john.doe.crt" recebo o seguinte:

keys/john.doe.crt: C = VE, ST = MI, L = Caracas, O =www www, CN = john.doe, emailAddress = [email protected] error 20 at 0 depth lookup:unable to get local issuer certificate

Testando qualquer cliente ativo (e mais antigo) crt, não gera erro ...

Eu também tentei este comando: "openssl x509 -in-keys / jhon.doe.crt -noout-text | grep Issuer" e lança:

Issuer: C=VE, ST=MI, L=Caracas, O=www www, CN=fred.durst/name=Fred Durst/[email protected]

O que é bem esquisito, porque Fred Durst é um cliente, não um CA ...

Quando eu tento o mesmo comando com um cliente de trabalho crt, ele lança:

Issuer: C=VE, ST=MI, L=Caracas, O=www www, OU=Section, CN=SGBVPN/name=SGBVPN

O que parece bom para mim ... Curiosamente, Fred Durst foi o ultimo crt criado antes de todo este problema surgir .. Todos os crts de clientes mais antigos criados antes de fred.durst funciona muito bem, O problema está apenas acontecendo com novas chaves só ...

Alguma pista? TIA

    
por hecstevez 18.09.2013 / 00:03

1 resposta

2

Não existe exatamente uma maneira padrão de gerar esses certificados. Dependendo do conteúdo do seu script, ele pode estar fazendo várias coisas. No entanto, há duas coisas que vou apontar.

Em primeiro lugar, você não disse que a conectividade não está funcionando. Eu realmente espero que ninguém seja capaz de autenticar com esses certificados; se estiverem, significa que qualquer usuário pode assinar outra solicitação de certificado arbitrário e conceder acesso à sua VPN. A maneira de evitar isso é emitir certificados que explicitamente não são certificados de autoridade de certificação e só têm os atributos de uso de chave necessários definidos.

De qualquer forma, normalmente você estará assinando os certificados com o comando openssl ca , que depende dos parâmetros de um arquivo openssl.conf (normalmente em /etc/openssl.conf ou especificado na linha de comando). Verifique se as opções estão corretas. Encontre o certificado de autoridade de certificação e a chave que ele está usando e verifique se estão corretos (novamente, isso está no arquivo de configuração openssl ou na linha de comando).

Se você não estiver usando o openssl, a mesma solução geral se aplica: encontre o certificado de autoridade de certificação e verifique se ele não foi substituído acidentalmente.

Se você de alguma forma conseguiu substituir a chave (ou alguém fez), você terá que encontrar uma cópia de backup ou reconstruir sua PKI.

Sem o conteúdo do seu script, não há muito mais que eu possa lhe dizer.

    
por 18.09.2013 / 04:32