El siguiente error se puede presentar al tratar de establecer conexión contra una VPN configurada a través de Network Manager en CentOS, RHEL, Ubuntu o cualquier distribución de GNU/Linux que utilice NM.
En este caso, sucedió con una VPN de Fortinet y utilizando el añadido de Network Manager FortiSSLVPN, que es como tener el Forticlient integrado en el sistema operativo:
$ rpm -qa | grep -i forti NetworkManager-fortisslvpn-gnome-1.2.8-2.fc28.x86_64 NetworkManager-fortisslvpn-1.2.8-2.fc28.x86_64 openfortivpn-1.6.0-1.fc28.x86_64
El error es el siguiente:
NetworkManager[1253]: ERROR: Gateway certificate validation failed, and the certificate digest in not in the local whitelist. If you trust it, rerun with: NetworkManager[1253]: ERROR: --trusted-cert 2a1sb23334ad18fdgeh21h5hff89xc19ec4ef5acc8ac3bee3e1e99d740b5sse42 NetworkManager[1253]: ERROR: or add this line to your config file: NetworkManager[1253]: ERROR: trusted-cert = 2a1sb23334ad18fdgeh21h5hff89xc19ec4ef5acc8ac3bee3e1e99d740b5sse42 NetworkManager[1253]: ERROR: Gateway certificate: NetworkManager[1253]: ERROR: subject: NetworkManager[1253]: ERROR: C=US NetworkManager[1253]: ERROR: ST=California NetworkManager[1253]: ERROR: L=Sunnyvale NetworkManager[1253]: ERROR: O=Fortinet NetworkManager[1253]: ERROR: OU=FortiGate NetworkManager[1253]: ERROR: CN=XXXX NetworkManager[1253]: ERROR: emailAddress=support@fortinet.com NetworkManager[1253]: ERROR: issuer: NetworkManager[1253]: ERROR: C=US NetworkManager[1253]: ERROR: ST=California NetworkManager[1253]: ERROR: L=Sunnyvale NetworkManager[1253]: ERROR: O=Fortinet NetworkManager[1253]: ERROR: OU=Certificate Authority NetworkManager[1253]: ERROR: CN=support NetworkManager[1253]: ERROR: emailAddress=support@fortinet.com NetworkManager[1253]: ERROR: sha256 digest: NetworkManager[1253]: ERROR: 2a1sb23334ad18fdgeh21h5hff89xc19ec4ef5acc8ac3bee3e1e99d740b5sse42 NetworkManager[1253]: INFO: Closed connection to gateway.
Lo importante es esta parte:
NetworkManager[1253]: ERROR: Gateway certificate validation failed, and the certificate digest in not in the local whitelist. If you trust it, rerun with: NetworkManager[1253]: ERROR: --trusted-cert 2a1sb23334ad18fdgeh21h5hff89xc19ec4ef5acc8ac3bee3e1e99d740b5sse42
Básicamente, no está dejando conectar debido a que no se ha podido validar la cadena de confianza (trust chain) del certificado, probablemente por ser autofirmado. La solución la da el mismo error, y consiste en añadir como trusted/whitelist el certificado en la configuración de esa VPN:
# pwd /etc/NetworkManager/system-connections root@foo_vm:[system-connections] # cat foo_VPN [connection] id=foo_VPN uuid=d8e2vdfc-5d33-43d3-8feb-3s1a2d13e92e type=vpn autoconnect=false permissions= [vpn] gateway=10.0.0.10:10443 otp-flags=0 password-flags=1 user=nologin service-type=org.freedesktop.NetworkManager.fortisslvpn trusted-cert = 2a1sb23334ad18fdgeh21h5hff89xc19ec4ef5acc8ac3bee3e1e99d740b5sse42 [...]
Una vez modificado, sólo falta reiniciar NetworkManager y la conexión VPN se debería poder establecer correctamente:
root@foo_vm:[system-connections] # service NetworkManager restart Redirecting to /bin/systemctl restart NetworkManager.service