背景
作爲新生代農民工,想必對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辦公那再好不過了,要想在移動端辦公,就要安裝OpenVPN,很多同學在使用iOS系統配置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 文件格式如下:
client
********
********
<ca>
********
</ca>
<cert>
********
</cert>
<key>
********
</key>
使用 Sublime Text 打開 client.ovpn 和 ca.crt(我只用到該證書) 文件(如果沒有編輯器,可以將文件名後綴改成 .txt,直接使用記事本打開,修改完後再把文件名修改成 client.ovpn 即可)。示例如下:
原文件: client.ovpn
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 參數,加入證書內容)
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即可正常使用!