Como corrigir a verificação de certificados criando uma VPN (OpenVPN)?

4

Ok, vou explicar o que eu fiz ... e no final é o queston. Obrigado!

Para configurar minha VPN, instalei o OpenVPN em máquinas servidoras e clientes. No servidor eu configurei o cert Authority no arquivo / etc / openvpn / easy-rsa / vars editando estas linhas:

export KEY_COUNTRY=”ES”
export KEY_PROVINCE=”M”
export KEY_CITY=”Madrid”
export KEY_ORG=”My Organization”
export KEY_EMAIL=”[email protected]

então eu gerou o certificado:

cd /etc/openvpn/easy-rsa/ ln -s openssl-1.0.0.cnf openssl.cnf source vars ./clean-all ./build-ca

Criado o cerver certs:

./build-key-server myServer

Parâmetros Diffie Hellman para o servidor

./build-dh

Copos e chaves copiadas / etc / openvpn

cd keys/ cp myServer.crt myServer.key ca.crt dh1024.pem /etc/openvpn/

Certs de cliente criados

cd /etc/openvpn/easy-rsa/ source vars ./build-key client1

Copiei este certs para a máquina do cliente e apaguei-os do servidor:

/etc/openvpn/ca.crt

/etc/openvpn/easy-rsa/keys/cliente.crt

/etc/openvpn/easy-rsa/keys/cliente.key

Editado /etc/openvpn/server.conf para os nomes dos meus arquivos

ca ca.crt
cert myServer.crt
key myServer.key
dh dh1024.pem

/etc/init.d/openvpn restart

Verificou que o tun0 está lá

ifconfig tun0

Habilitado o parâmetro ip_forward no /etc/sysctl.conf para que os pacotes possam fluir

net.ipv4.ip_forward=1

Também ativado o mascaramento de rede virtual para que o cliente possa acessar todas as máquinas remotas

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

e salvou as tabelas ip conf para que elas não desapareçam em uma reinicialização

Escolha a configuração em um arquivo

sudo sh -c “iptables-save > /etc/iptables.rules”

Edite / etc / network / interfaces adicionando a interface (eth0, neste caso)

pre-up iptables-restore < /etc/iptables.rules

No cliente eu instalei o OpenVPN e editei o arquivo client.conf que está em / etc / openvpn com os certificados: ca.cert, client1.key, client1.conf, obtendo o seguinte arquivo client.conf:

client
dev tun
proto udp
remote xxx.xxx.xxx.xxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo
verb 3

depois reiniciado:

/etc/init.d/openvpn restart

E quando eu quero verificar se a interface tun0 está lá com ifconfig tun0, não existe.

Por isso, verifiquei meu log em busca de erros, na máquina do cliente, e há esse erro:

VERIFY ERROR: depth=0, error=unable to get local issuer certificate: /C=Es/ST=M/L=Madrid/O=xxx/OU=xxx/CN=myServer/name=xxx/[email protected]
TLS_ERROR: BIO read tls_read_plaintext error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
user openvpn[7984]: TLS Error: TLS object -> incoming plaintext read error
user openvpn[7984]: TLS Error: TLS handshake failed

Eu criei as chaves novamente e adicionei o caminho completo dos certs no arquivo client.conf, mas ele ainda não funciona. Também tentei com todos os meus firewalls desativados e ainda não posso conectar ao meu servidor por causa desse erro.

Outra coisa importante é que o meu servidor é um Ubuntu 12.04 e o cliente CentOS 6.3

Posso ver que encontro meu servidor, mas a conexão ainda não está completa ...

O que devo fazer ??

Se mais arquivos de configuração forem necessários, diga-me para mostrar a você

    
por AAlvz 15.01.2013 / 19:21

1 resposta

3

Na sua mensagem de erro:

error=unable to get local issuer certificate: 

Esta mensagem significa que essas linhas na configuração do seu cliente estão apontando para os arquivos incorretos:

cert client1.crt
key client1.key

No seu prédio, as chaves do cliente, você disse:

/etc/openvpn/easy-rsa/keys/cliente.crt

Você precisa atualizar a configuração do cliente para corresponder aos nomes do arquivo .crt e .key realmente gerado

    
por 24.02.2014 / 20:33