我试图在Linux(Ubuntu 12.04)上使用OpenVPN 2.2.1连接到由同事维护的VPN服务器。他成功使用了TunnelBlick(在Mac上)。我试图逐字地使用他的客户端配置,唯一的变化是本地对等的不同文件。但我得到一个无用的错误消息(编辑私人位):
$ openvpn mycorp.conf
… OpenVPN 2.2.1 i686-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [eurephia] [MH] [PF_INET6] [IPv6 payload 20110424-2 (2.2RC2)] built on Mar 30 2012
… NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
… Cannot load CA certificate file mycorp-ca.crt path (null) (SSL_CTX_load_verify_locations) (OpenSSL)
… Exiting
问题(mycorp-ca.crt
)中的文件位于当前目录中; 如果我重命名它,我得到一个预期的错误消息(…:fopen:No such file or directory:…
)。它可由当前用户读取,并且是ASCII文件:
----BEGIN CERTIFICATE-----
…18 lines of Base-64…
-----END CERTIFICATE-----
有问题的代码在 OpenSSL中调用库函数,但失败了。该库函数的文档只是说,有益,从提到的功能的返回值为0表示:
操作失败,因为CAfile和CApath为NULL或指定位置之一的处理失败。检查错误堆栈以找出原因。
运行openvpn
下strace
,确认mycorp-ca.crt
被读取。那有什么不对?