web-dev-qa-db-ja.com

OpenVPNがUDP経由の自己署名証明書で失敗し、TCP経由で機能する

次のserver.confがあります。

# OpenVPN 2.x config

proto tcp

port 1194
dev tun-vpn
dev-type tun

server 10.8.0.0 255.255.0.0
Push "route 172.16.0.0 255.255.0.0"
Push "dhcp-option DOMAIN mydom.com"
Push "dhcp-option DNS 172.16.1.1"

# Certificates
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
tls-server

# Diffie hellman parameters
dh /etc/openvpn/easy-rsa/keys/dh1024.pem

# Connection settings
comp-lzo
ping 10
ping-restart 120

# Server security
persist-key
persist-tun
user nobody
group nogroup

# Logging
status openvpn-status.log
verb 4
mute 10

そして次のクライアント設定:

# OpenVPN 2.x client config
client

dev tun

proto tcp

remote vpn.mydom.com 1194

resolv-retry infinite

nobind

persist-key
persist-tun

mute-replay-warnings

ca ca.crt
cert michaelc.crt
key michaelc.key

#ns-cert-type server

comp-lzo
ping 10
ping-restart 60

verb 3

これらの構成は正常に機能しますが、TCPの代わりにUDPを使用したい場合、次のログを取得します。

Thu May 24 22:30:16 2012 UDPv4 link local: [undef]
Thu May 24 22:30:16 2012 UDPv4 link remote: [AF_INET]x.x.x.x:1194
Thu May 24 22:30:16 2012 TLS: Initial packet from [AF_INET]x.x.x.x:1194, sid=e63bd705 392de807
Thu May 24 22:30:16 2012 VERIFY ERROR: depth=1, error=self signed certificate in certificate chain: /C=NL/ST=Zuid_Holland/L=_s-Gravendeel/O=Visser__s-Gravendeel_Holding_B.V./CN=Visser__s-Gravendeel_Holding_B.V._CA/[email protected]
Thu May 24 22:30:16 2012 TLS_ERROR: BIO read tls_read_plaintext error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Thu May 24 22:30:16 2012 TLS Error: TLS object -> incoming plaintext read error
Thu May 24 22:30:16 2012 TLS Error: TLS handshake failed
Thu May 24 22:30:16 2012 TCP/UDP: Closing socket
Thu May 24 22:30:16 2012 SIGUSR1[soft,tls-error] received, process restarting
Thu May 24 22:30:16 2012 Restart pause, 2 second(s)

Ca.crtに対して証明書を確認しました。server.crtとmichaelc.crtの両方がca.crtで署名された有効な証明書です。

また、これらはTCPで動作するため、証明書は完全に有効であると私は想定しています。接続が悪いことは想像できますが(一方の端はDSLで、もう一方の端はビジネスファイバーです)、これは修正可能ですか?また、新しい証明書(CA、サーバー、クライアントの両方)を生成しようとしましたが、まったく同じエラーが発生します。誰かが私にヒントを与えてくれることを願っています。

6
mycroes

幸いにも私は問題を理解しました、残念ながらそれは私自身の間違いでした。少し前に別のサーバーでVPN over UDPをテストしていたため、ポート1194のUDP接続を他のサーバーにリダイレクトしました。他のサーバーはOpenVPNを実行しており、非常によく似た証明書を持っています。そのため、実際にはエラーは正しく、UDPを使用して接続するときに別のサーバーに接続したことが原因でした。私はこの間違いをするのは馬鹿だと思いますが、何が悪いのか実際にわかってよかったです。

2
mycroes