背景
作为新生代农民工,想必对VPN都不陌生。为了提升公司安全性,大部分互联网公司都会对公司内部平台做网络隔离(禁止公网环境随意访问),常用到的工具即OpenVPN。
OpenVPN简单实用,安全性高(安全性高是因为OpenVPN使用CA证书来实现网络加密传输),当客户端连接OpenVPN时需要将ca.crt、client.ovpn等文件放在一个文件夹下,然后将 client.ovpn 导入OpenVPN客户端工具(如OpenVPN-client(Windows、Android)、Tunnelblick(Mac)、OpenVPN Connection(iPhone、iPad))即可使用。
使用上面的方法在Linux、Windows、Macos、Android 四大平台均畅行无阻,可是到了iOS却行不通了。 互联网行业很多时候需要随时随地办公,手机或iPad会为出行带来很多方便,所以有必要在iPad上安装OpenVPN。
问题
在此以iPad为例,在使用 OpenVPN Connect 添加client时遇到问题及解决办法如下:
报错:Can't not found ca.crt:/path/to/ca.crt
(一长串的报错信息)
原因:在OpenVPN配置文件 client.ovpn 用到了ca证书,在添加 OpenVPN 时无法找到对应的ca.crt 文件,因为OpenVPN Connect只会到默认的路径去找该文件,该路径不能更改,且因权限问题,没能将证书放到其默认位置。
解决办法
client.ovpn支持 XML 语法,可以直接将 ca.crt 证书中内容合并到 client.ovpn 文件,然后导入OpenVPN Connect即可解决上述问题。修改后的 client.ovpn 文件格式如下:
代码语言:javascript复制client
********
********
<ca>
********
</ca>
<cert>
********
</cert>
<key>
********
</key>
使用 Sublime Text 打开 client.ovpn 和 ca.crt(我只用到该证书) 文件(如果没有编辑器,可以将文件名后缀改成 .txt,直接使用记事本打开,修改完后再把文件名修改成 client.ovpn 即可)。示例如下:
原文件: client.ovpn
代码语言:javascript复制client
dev tun
proto tcp
remote xx.xx.xx.xx 10194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
auth-user-pass
remote-cert-tls server
verb 3
在此需要注意参数 ca ca.crt
。
修改后文件:client.ovpn(删除 ca ca.crt 参数,加入证书内容)
代码语言:javascript复制client
dev tun
proto tcp
remote xx.xx.xx.xx 10194
resolv-retry infinite
nobind
persist-key
persist-tun
auth-user-pass
remote-cert-tls server
verb 3
<ca>
********
</ca>
然后直接将该文件在iPad上通过 分享 的方式,导入到OpenVPN Connect即可正常使用!
参考
- https://openvpn.net/faq/i-am-having-trouble-importing-my-ovpn-file/