Знаю, это распространённая проблема, но несколько часов гугления ник чему не привели.
Имеется OpenVPN сервер, ОС CentOS. Имеются два клиента - один под CentOS, второй - Windows 7 c OpenVPN GUI.
Сертификаты создавались для обоих по одной схеме:
Код: Выделить всё
# cd /etc/openvpn/easy-rsa
Код: Выделить всё
# ./build-key client_main
Generating a 2048 bit RSA private key
............+++
..................+++
writing new private key to 'client_main.key'
...
Country Name (2 letter code) [UA]:
State or Province Name (full name) [None]:
Locality Name (eg, city) [Kiev]:
Organization Name (eg, company) [Venti private server]:
Organizational Unit Name (eg, section) [Venti private server]:
Common Name (eg, your name or your server's hostname) [client_main]:
Name [EasyRSA]:
Email Address [root@client.org.ua]:
...
Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnf
...
Certificate is to be certified until Dec 14 13:46:24 2024 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Код: Выделить всё
# ls -l keys/ | grep main
-rw-r--r-- 1 root root 5566 Dec 17 15:46 client_main.crt
-rw-r--r-- 1 root root 1110 Dec 17 15:46 client_main.csr
-rw------- 1 root root 1708 Dec 17 15:46 client_main.key
Код: Выделить всё
# mkdir /etc/openvpn/clients/client_main
Код: Выделить всё
# cp /etc/openvpn/easy-rsa/keys/client_main.* /etc/openvpn/clients/client_main
Код: Выделить всё
# cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/clients/sclient_main/
Код: Выделить всё
# cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/client.conf /etc/openvpn/clients/client_main/client.ovpn
Код: Выделить всё
# cat /etc/openvpn/clients/client_main/client.ovpn
client
;dev tap
dev tun
;dev-node MyTap
;proto tcp
proto udp
remote 77.***.***.20 1194
;remote my-server-2 1194
;remote-random
resolv-retry infinite
nobind
;user nobody
;group nobody
persist-key
persist-tun
;http-proxy-retry
;http-proxy [proxy server] [proxy port ]
;mute-replay-warnings
ca ca.crt
cert client_main.crt
key client_main.key
ns-cert-type server
;tls-auth ta.key 1
;cipher x
comp-lzo
verb 4
;mute 20
Код: Выделить всё
$ pwd
/cygdrive/c/Program Files (x86)/OpenVPN/config
Код: Выделить всё
$ scp -r -P 2222 client@client.org.ua:/etc/openvpn/clients/client_main/* .
client@client.org.ua's password:
ca.crt 100% 1850 1.8KB/s 00:00
client.ovpn 100% 433 0.4KB/s 00:00
client_main.crt 100% 5566 5.4KB/s 00:00
client_main.csr 100% 1110 1.1KB/s 00:00
client_main.key 100% 1708 1.7KB/s 00:00
Код: Выделить всё
15:51:35 [client@client-main /cygdrive/c/Program Files (x86)/OpenVPN/config] $ ls -l
итого 21
-rw-r--r--+ 1 client None 1850 дек 17 15:51 ca.crt
-rw-r--r--+ 1 client None 433 дек 17 15:51 client.ovpn
-rw-r--r--+ 1 client None 5566 дек 17 15:51 client_main.crt
-rw-r--r--+ 1 client None 1110 дек 17 15:51 client_main.csr
-rw-r--r--+ 1 client None 1708 дек 17 15:51 client_main.key
Код: Выделить всё
$ ../bin/openssl.exe verify -CAfile ca.crt client_main.crt
client_main.crt: OK
ЧЯДНТ тут?Wed Dec 17 15:53:24 2014 us=641068 TLS: Initial packet from 77.***.***.20:1194, sid=e6e1a07d f581c685
Wed Dec 17 15:53:24 2014 us=667076 VERIFY ERROR: depth=1, error=certificate signature failure: /C=UA/ST=None/L=Kiev/O=Venti_private_server/OU=Venti_private_server/CN=venti.client.org.ua/name=EasyRSA/emailAddress=root@client.org.ua
Wed Dec 17 15:53:24 2014 us=667148 TLS_ERROR: BIO read tls_read_plaintext error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Wed Dec 17 15:53:24 2014 us=667157 TLS Error: TLS object -> incoming plaintext read error
Wed Dec 17 15:53:24 2014 us=667163 TLS Error: TLS handshake failed
Wed Dec 17 15:53:24 2014 us=667267 TCP/UDP: Closing socket
На обоих клиентах одинаковый OpenSSL:
На сервере:
Код: Выделить всё
# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
Код: Выделить всё
15:52:56 [client@client-main /cygdrive/c/Program Files (x86)/OpenVPN/config] $ ../bin/openssl.exe version
OpenSSL 1.0.1j 15 Oct 2014