Hey All, I'm pulling my hair out with this one. I've been trolling the web for a few weeks looking for a solution to this issue. From all the posts i've seen in the past I know I need to post a few things for this thread to be relevant and for you all to give me helpful advice! Here we go
The error that i'm getting:
VERIFY ERROR: depth=1, error=unalbe to get local isuer certificate: CN=openvpn-ca
TLS_ERROR: BIO read tls_read_plaintext error: error 140900086:SSL routines:SSL3_GET_SERVER-CERTIFICATE:certificate verify failed
The CN=openvpn-ca in the case is the cert for the CA (intermediate) on the openvpn server itself.
RootCA
Intermediate CA (openvpn-ca)
Openvpn-server
Client1
That is the main bit. Here are the configs from my server/clients
Server Config
port 1194
proto udp
dev tun
ca /etc/openvpn/certs/ca.crt
cert /etc/openvpn/certs/openvpn-server.crt
key /etc/openvpn/keys/openvpn-server.key
dh /etc/openvpn/certs/dh2048.pem
server 10.10.85.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
tls-auth /etc/openvpn/keys/ta.key 0 # This file is secret
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log-append /var/log/openvpn.log
verb 6
daemon
push "dhcp-options DNS 192.168.26.7"
push "dhcp-options DNS 192.168.26.31"
push "route 192.168.25.0 255.255.255.0"
push "rvvoute 192.168.27.0 255.255.255.0"
push "route 192.168.26.0 255.255.255.0"
push "route 192.168.28.0 255.255.255.0"
push "route 192.168.29.0 255.255.255.0"
push "route 192.168.50.0 255.255.255.0"
push "route 192.168.105.0 255.255.255.0"
push "route 192.168.248.0 255.255.255.0"
push "route 192.168.72.0 255.255.255.0"
push "route 10.0.0.0 255.0.0.0"
Client Config
##############################################
# Sample client-side OpenVPN 2.0 config file #
# for connecting to multi-client server. #
# #
# This configuration can be used by multiple #
# clients, however each client should have #
# its own cert and key files. #
# #
# On Windows, you might want to rename this #
# file so it has a .ovpn extension #
##############################################
# Specify that we are a client and that we
# will be pulling certain config file directives
# from the server.
client1
# Use the same setting as you are using on
# the server.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
;dev tap
dev tun
# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel
# if you have more than one. On XP SP2,
# you may need to disable the firewall
# for the TAP adapter.
;dev-node MyTap
# Are we connecting to a TCP or
# UDP server? Use the same setting as
# on the server.
proto udp
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote vpn.mydomain.com 1194
;remote my-server-2 1194
# Choose a random host from the remote
# list for load-balancing. Otherwise
# try hosts in the order specified.
;remote-random
# Keep trying indefinitely to resolve the
# host name of the OpenVPN server. Very useful
# on machines which are not permanently connected
# to the internet such as laptops.
resolv-retry infinite
# Most clients don't need to bind to
# a specific local port number.
nobind
# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup
# Try to preserve some state across restarts.
persist-key
persist-tun
# If you are connecting through an
# HTTP proxy to reach the actual OpenVPN
# server, put the proxy server/IP and
# port number here. See the man page
# if your proxy server requires
# authentication.
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
# Wireless networks often produce a lot
# of duplicate packets. Set this flag
# to silence duplicate packet warnings.
;mute-replay-warnings
# SSL/TLS parms.
# See the server config file for more
# description. It's best to use
# a separate .crt/.key file pair
# for each client. A single ca
# file can be used for all clients.
ca /etc/openvpn/certs/ca.crt
cert /etc/openvpn/certs/client1.crt
key /etc/openvpn/keys/client1.key
# Verify server certificate by checking
# that the certicate has the nsCertType
# field set to "server". This is an
# important precaution to protect against
# a potential attack discussed here:
# http://openvpn.net/howto.html#mitm
#
# To use this feature, you will need to generate
# your server certificates with the nsCertType
# field set to "server". The build-key-server
# script in the easy-rsa folder will do this.
;ns-cert-type server
remote-cert-tls server
# If a tls-auth key is used on the server
# then every client must also have the key.
tls-auth /etc/openvpn/keys/ta.key 1
# Select a cryptographic cipher.
# If the cipher option is used on the server
# then you must also specify it here.
;cipher x
# Enable compression on the VPN link.
# Don't enable this unless it is also
# enabled in the server config file.
comp-lzo
# Testing to see if logs can be moved
log-append /var/log/openvpn.log
# Set log file verbosity.
verb 11
# Silence repeating messages
;mute 20
I'm completely stumped. If I do:
openssl verify -CAfile ca.crt client1.crt
It comes back totally fine. I've also done the same with the server cert (openvpn-server.crt) and that also has no problems. Any thoughts? Thanks soo much!