TLS Error: TLS handshake failed OpenVPN BlackVPN

Hi all,

First of all, I tried looking at the other posts in the forum with no success. Therefore I am creating a new one.

I am using the latest OpenWRT release (19...) and I am having troubles with the OpenVPN (following this BlackVPN Guide configuration.

Everything looks fine, the VPN is "Started" successfully. However, I can't access any website. Looking at the system logs, I see the following related lines:

Tue Apr  7 10:42:51 2020 daemon.warn openvpn(blackVPN)[7201]: WARNING: --ns-cert-type is DEPRECATED.  Use --remote-cert-tls instead.
Tue Apr  7 10:42:51 2020 daemon.notice openvpn(blackVPN)[7201]: TCP/UDP: Preserving recently used remote address: [AF_INET]162.245.206.228:443
Tue Apr  7 10:42:51 2020 daemon.notice openvpn(blackVPN)[7201]: Socket Buffers: R=[163840->163840] S=[163840->163840]
Tue Apr  7 10:42:51 2020 daemon.notice openvpn(blackVPN)[7201]: UDP link local (bound): [AF_INET][undef]:443
Tue Apr  7 10:42:51 2020 daemon.notice openvpn(blackVPN)[7201]: UDP link remote: [AF_INET]162.245.206.228:443
Tue Apr  7 10:43:51 2020 daemon.err openvpn(blackVPN)[7201]: TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Tue Apr  7 10:43:51 2020 daemon.err openvpn(blackVPN)[7201]: TLS Error: TLS handshake failed
Tue Apr  7 10:43:51 2020 daemon.notice openvpn(blackVPN)[7201]: SIGUSR1[soft,tls-error] received, process restarting
Tue Apr  7 10:43:51 2020 daemon.notice openvpn(blackVPN)[7201]: Restart pause, 300 second(s)

Clearly, I've made a mistake somewhere along the Firewall or the interfaces. I am copying my settings so hopefully someone can guide me.

uci show firewall

firewall.@defaults[0]=defaults
firewall.@defaults[0].syn_flood='1'
firewall.@defaults[0].input='ACCEPT'
firewall.@defaults[0].output='ACCEPT'
firewall.@defaults[0].forward='REJECT'
firewall.lan=zone
firewall.lan.name='lan'
firewall.lan.input='ACCEPT'
firewall.lan.output='ACCEPT'
firewall.lan.forward='ACCEPT'
firewall.lan.device='tun0'
firewall.lan.network='lan'
firewall.wan=zone
firewall.wan.name='wan'
firewall.wan.input='REJECT'
firewall.wan.output='ACCEPT'
firewall.wan.forward='REJECT'
firewall.wan.masq='1'
firewall.wan.mtu_fix='1'
firewall.wan.network='wan wan6'
firewall.lan_wan=forwarding
firewall.lan_wan.src='lan'
firewall.lan_wan.dest='wan'
firewall.@rule[0]=rule
firewall.@rule[0].name='Allow-DHCP-Renew'
firewall.@rule[0].src='wan'
firewall.@rule[0].proto='udp'
firewall.@rule[0].dest_port='68'
firewall.@rule[0].target='ACCEPT'
firewall.@rule[0].family='ipv4'
firewall.@rule[1]=rule
firewall.@rule[1].name='Allow-Ping'
firewall.@rule[1].src='wan'
firewall.@rule[1].proto='icmp'
firewall.@rule[1].icmp_type='echo-request'
firewall.@rule[1].family='ipv4'
firewall.@rule[1].target='ACCEPT'
firewall.@rule[2]=rule
firewall.@rule[2].name='Allow-IGMP'
firewall.@rule[2].src='wan'
firewall.@rule[2].proto='igmp'
firewall.@rule[2].family='ipv4'
firewall.@rule[2].target='ACCEPT'
firewall.@rule[3]=rule
firewall.@rule[3].name='Allow-DHCPv6'
firewall.@rule[3].src='wan'
firewall.@rule[3].proto='udp'
firewall.@rule[3].src_ip='fc00::/6'
firewall.@rule[3].dest_ip='fc00::/6'
firewall.@rule[3].dest_port='546'
firewall.@rule[3].family='ipv6'
firewall.@rule[3].target='ACCEPT'
firewall.@rule[4]=rule
firewall.@rule[4].name='Allow-MLD'
firewall.@rule[4].src='wan'
firewall.@rule[4].proto='icmp'
firewall.@rule[4].src_ip='fe80::/10'
firewall.@rule[4].icmp_type='130/0' '131/0' '132/0' '143/0'
firewall.@rule[4].family='ipv6'
firewall.@rule[4].target='ACCEPT'
firewall.@rule[5]=rule
firewall.@rule[5].name='Allow-ICMPv6-Input'
firewall.@rule[5].src='wan'
firewall.@rule[5].proto='icmp'
firewall.@rule[5].icmp_type='echo-request' 'echo-reply' 'destination-unreachable' 'packet-too-big' 'time-exceeded' 'bad-header' 'unknown-header-type' 'router-solicitation' 'neighbour-solicitation' 'router-advertisement' 'neighbour-advertisement'
firewall.@rule[5].limit='1000/sec'
firewall.@rule[5].family='ipv6'
firewall.@rule[5].target='ACCEPT'
firewall.@rule[6]=rule
firewall.@rule[6].name='Allow-ICMPv6-Forward'
firewall.@rule[6].src='wan'
firewall.@rule[6].dest='*'
firewall.@rule[6].proto='icmp'
firewall.@rule[6].icmp_type='echo-request' 'echo-reply' 'destination-unreachable' 'packet-too-big' 'time-exceeded' 'bad-header' 'unknown-header-type'
firewall.@rule[6].limit='1000/sec'
firewall.@rule[6].family='ipv6'
firewall.@rule[6].target='ACCEPT'
firewall.@rule[7]=rule
firewall.@rule[7].name='Allow-IPSec-ESP'
firewall.@rule[7].src='wan'
firewall.@rule[7].dest='lan'
firewall.@rule[7].proto='esp'
firewall.@rule[7].target='ACCEPT'
firewall.@rule[8]=rule
firewall.@rule[8].name='Allow-ISAKMP'
firewall.@rule[8].src='wan'
firewall.@rule[8].dest='lan'
firewall.@rule[8].dest_port='500'
firewall.@rule[8].proto='udp'
firewall.@rule[8].target='ACCEPT'
firewall.@include[0]=include
firewall.@include[0].path='/etc/firewall.user'
firewall.ovpn=rule
firewall.ovpn.name='Allow-OpenVPN'
firewall.ovpn.src='wan'
firewall.ovpn.proto='udp'
firewall.ovpn.target='ACCEPT'
firewall.ovpn.dest_port='1194'
firewall.@zone[2]=zone
firewall.@zone[2].network='BLACK'
firewall.@zone[2].forward='REJECT'
firewall.@zone[2].name='BLACK_FW'
firewall.@zone[2].output='ACCEPT'
firewall.@zone[2].input='REJECT'
firewall.@zone[2].masq='1'
firewall.@zone[2].mtu_fix='1'
firewall.@forwarding[1]=forwarding
firewall.@forwarding[1].dest='BLACK_FW'
firewall.@forwarding[1].src='lan'
firewall.@rule[10]=rule
firewall.@rule[10].dest_port='1194'
firewall.@rule[10].name='AllowVPN2villa'
firewall.@rule[10].target='ACCEPT'
firewall.@rule[10].src='wan'
firewall.@rule[10].dest='BLACK_FW'

uci show vpn

root@OpenWrt:~# uci show openvpn
openvpn.custom_config=openvpn
openvpn.custom_config.config='/etc/openvpn/my-vpn.conf'
openvpn.sample_server=openvpn
openvpn.sample_server.port='1194'
openvpn.sample_server.proto='udp'
openvpn.sample_server.dev='tun'
openvpn.sample_server.ca='/etc/openvpn/ca.crt'
openvpn.sample_server.cert='/etc/openvpn/server.crt'
openvpn.sample_server.key='/etc/openvpn/server.key'
openvpn.sample_server.dh='/etc/openvpn/dh1024.pem'
openvpn.sample_server.server='10.8.0.0 255.255.255.0'
openvpn.sample_server.ifconfig_pool_persist='/tmp/ipp.txt'
openvpn.sample_server.keepalive='10 120'
openvpn.sample_server.compress='lzo'
openvpn.sample_server.persist_key='1'
openvpn.sample_server.persist_tun='1'
openvpn.sample_server.user='nobody'
openvpn.sample_server.status='/tmp/openvpn-status.log'
openvpn.sample_server.verb='3'
openvpn.sample_client=openvpn
openvpn.sample_client.client='1'
openvpn.sample_client.dev='tun'
openvpn.sample_client.proto='udp'
openvpn.sample_client.resolv_retry='infinite'
openvpn.sample_client.nobind='1'
openvpn.sample_client.persist_key='1'
openvpn.sample_client.persist_tun='1'
openvpn.sample_client.user='nobody'
openvpn.sample_client.ca='/etc/openvpn/ca.crt'
openvpn.sample_client.compress='lzo'
openvpn.sample_client.verb='3'
openvpn.sample_client.remote='vpn.blackvpn.nl'
openvpn.sample_client.auth_user_pass='/etc/openvpn/userpass.txt'
openvpn.sample_client.cert='/etc/openvpn/ca.crt'
openvpn.sample_client.key='/etc/openvpn/ta.key'
openvpn.blackVPN=openvpn
openvpn.blackVPN.dev='tun'
openvpn.blackVPN.verb='3'
openvpn.blackVPN.fast_io='1'
openvpn.blackVPN.port='443'
openvpn.blackVPN.comp_lzo='adaptive'
openvpn.blackVPN.persist_tun='1'
openvpn.blackVPN.persist_key='1'
openvpn.blackVPN.client='1'
openvpn.blackVPN.auth_user_pass='/etc/openvpn/userpass.txt'
openvpn.blackVPN.pull='1'
openvpn.blackVPN.remote_random='1'
openvpn.blackVPN.tls_auth='/etc/openvpn/tlsauth.key'
openvpn.blackVPN.auth='SHA512'
openvpn.blackVPN.cipher='AES-256-CBC'
openvpn.blackVPN.key_method='2'
openvpn.blackVPN.tls_client='1'
openvpn.blackVPN.ca='/etc/openvpn/ca.crt'
openvpn.blackVPN.nobind='0'
openvpn.blackVPN.remote='westcoast.vpn.blackvpn.com'
openvpn.blackVPN.ns_cert_type='server'
openvpn.blackVPN.enabled='1'
openvpn.blackVPN.proto='udp'

uci show network

root@OpenWrt:~# uci show openvpn
openvpn.custom_config=openvpn
openvpn.custom_config.config='/etc/openvpn/my-vpn.conf'
openvpn.sample_server=openvpn
openvpn.sample_server.port='1194'
openvpn.sample_server.proto='udp'
openvpn.sample_server.dev='tun'
openvpn.sample_server.ca='/etc/openvpn/ca.crt'
openvpn.sample_server.cert='/etc/openvpn/server.crt'
openvpn.sample_server.key='/etc/openvpn/server.key'
openvpn.sample_server.dh='/etc/openvpn/dh1024.pem'
openvpn.sample_server.server='10.8.0.0 255.255.255.0'
openvpn.sample_server.ifconfig_pool_persist='/tmp/ipp.txt'
openvpn.sample_server.keepalive='10 120'
openvpn.sample_server.compress='lzo'
openvpn.sample_server.persist_key='1'
openvpn.sample_server.persist_tun='1'
openvpn.sample_server.user='nobody'
openvpn.sample_server.status='/tmp/openvpn-status.log'
openvpn.sample_server.verb='3'
openvpn.sample_client=openvpn
openvpn.sample_client.client='1'
root@OpenWrt:~# uci show network
network.loopback=interface
network.loopback.ifname='lo'
network.loopback.proto='static'
network.loopback.ipaddr='127.0.0.1'
network.loopback.netmask='255.0.0.0'
network.globals=globals
network.globals.ula_prefix='fdce:1c73:22c7::/48'
network.lan=interface
network.lan.type='bridge'
network.lan.ifname='eth0.1'
network.lan.proto='static'
network.lan.ipaddr='192.168.1.1'
network.lan.netmask='255.255.255.0'
network.lan.ip6assign='60'
network.lan_eth0_1_dev=device
network.lan_eth0_1_dev.name='eth0.1'
network.lan_eth0_1_dev.macaddr='b0:be:76:ed:53:aa'
network.wan=interface
network.wan.ifname='eth0.2'
network.wan.proto='dhcp'
network.wan_eth0_2_dev=device
network.wan_eth0_2_dev.name='eth0.2'
network.wan_eth0_2_dev.macaddr='b0:be:76:ed:53:ab'
network.wan6=interface
network.wan6.ifname='eth0.2'
network.wan6.proto='dhcpv6'
network.@switch[0]=switch
network.@switch[0].name='switch0'
network.@switch[0].reset='1'
network.@switch[0].enable_vlan='1'
network.@switch_vlan[0]=switch_vlan
network.@switch_vlan[0].device='switch0'
network.@switch_vlan[0].vlan='1'
network.@switch_vlan[0].ports='1 2 3 4 6t'
network.@switch_vlan[1]=switch_vlan
network.@switch_vlan[1].device='switch0'
network.@switch_vlan[1].vlan='2'
network.@switch_vlan[1].ports='0 6t'
network.BLACK=interface
network.BLACK.ifname='tun0'
network.BLACK.proto='none'
network.BLACK.delegate='0'