¿Cómo arreglar la verificación de certificados creando una VPN (OpenVPN)?

4

Ok, explicaré lo que hice ... y al final es el queston. ¡Gracias!

Para configurar mi VPN, instalé OpenVPN en servidores y máquinas cliente. En el servidor configuré la Autoridad de certificación en el archivo / etc / openvpn / easy-rsa / vars editando estas líneas:

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

entonces generé el cert:

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

Creé los certificados de Cerver:

./build-key-server myServer

Parámetros de Diffie Hellman al servidor

./build-dh

Certificados y claves copiados / etc / openvpn

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

Cliente creado Certs

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

Copié estos certificados en la máquina del cliente y los borré del servidor:

/etc/openvpn/ca.crt

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

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

Editado /etc/openvpn/server.conf a los nombres de mis archivos

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

/etc/init.d/openvpn restart

Verificó que tun0 está ahí

ifconfig tun0

Se habilitó el parámetro ip_forward en /etc/sysctl.conf para que los paquetes puedan fluir

net.ipv4.ip_forward = 1

También habilitó el enmascaramiento de red virtual para que el cliente pueda acceder a todas las máquinas remotas

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

y guardé las tablas de IP conf para que no desaparezcan en un reinicio

Grabamos la configuración en un archivo

sudo sh -c "iptables-save> /etc/iptables.rules"

Edite / etc / network / interfaces agregando la interfaz (eth0 en este caso)

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

En el cliente instalé OpenVPN y edité el archivo client.conf que está en / etc / openvpn con los certificados: ca.cert, client1.key, client1.conf obteniendo el siguiente archivo 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

luego reiniciado:

/etc/init.d/openvpn restart

Y cuando quiero verificar que la interfaz tun0 está ahí con ifconfig tun0, no la hay.

Así que revisé mi registro en busca de errores, en la máquina del cliente y hay este error:

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

He creado las claves nuevamente y agregué la ruta completa de los certificados en el archivo client.conf pero aún no funciona. También probé con todos mis firewalls desactivados y todavía no puedo conectarme a mi servidor debido a ese error.

Otra cosa importante es que mi servidor es un ubuntu 12.04 y un cliente CentOS 6.3

Puedo ver que encuentro mi servidor pero aún así la conexión no está completa ...

¿¿Qué tengo que hacer??

Si necesita más archivos de configuración, dígame que le muestre

AAlvz
fuente
1
Tengo exactamente el mismo problema. Muchas horas de búsqueda en Google han aparecido solo las sugerencias inútiles de regenerar los certificados (estaban funcionando y aún eran válidos), o abrir el firewall (estaba funcionando, las conexiones estaban bien). El hurgar al azar tampoco ha ayudado.
Thomas Jones-Low

Respuestas:

3

En tu mensaje de error:

error=unable to get local issuer certificate: 

Este mensaje significa que estas líneas en la configuración de su cliente apuntan a los archivos incorrectos:

cert client1.crt
key client1.key

En su edificio, las claves del cliente, usted dijo:

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

Debe actualizar la configuración del cliente para que coincida con los nombres del archivo .crty .keyrealmente generado

Thomas Jones-Low
fuente