I get .ovpn file from Android and I have username and password and I should connect to vpn server but I am not sure how to do it. I tried something like this:
let manager = NEVPNManager.sharedManager()
manager.loadFromPreferencesWithCompletionHandler { (error) -> Void in
if manager.`protocol` == nil {
let newIPSec = NEVPNProtocolIKEv2()
newIPSec.serverAddress = "xxx.xxx.xxx.xxx"
newIPSec.username = "username"
let keychain = Keychain(service: "com.app.ios")
let data = keychain[data: "vpnpassword"]
newIPSec.passwordReference = data
newIPSec.authenticationMethod = NEVPNIKEAuthenticationMethod.None
newIPSec.disconnectOnSleep = false
manager.`protocol` = newIPSec
manager.enabled = true
manager.saveToPreferencesWithCompletionHandler({ (error) -> Void in
print(error)
})
}
}
I don't know how to add certificate (between <ca>
in .ovpn) info and how to set it. File .ovpn looks like this (I just remove data in <ca>
tag and change server address:
client
dev tun
proto udp
remote xx.xx.xx.xx 443
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
<auth-user-pass>
#username#
#userpass#
</auth-user-pass>
cipher AES-256-CBC
<ca>
-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----
</ca>
Thanks for any help