I have written instructions on how to connect to your own OpenVPN server using Network Manager as well as Android.
Here is how to do it on iOS and OSX assuming you have followed my instructions for the server setup.
Generate new keys
From the easy-rsa directory you created while generating the server keys, create a new keypair for your phone:
./build-key iphone # "iphone" as Name, no password
and for your laptop:
./build-key osx # "osx" as Name, no password
Using OpenVPN Connect on iOS
The app you need to install from the App Store is OpenVPN Connect.
Once it's installed, connect your phone to your computer and transfer the following files using iTunes:
ca.crt
iphone.crt
iphone.key
iphone.ovpn
ta.key
You should then be able to select it after launching the app. See the official FAQ if you run into any problems.
iphone.ovpn
is a configuration file that you need to supply since the
OpenVPN Connect app doesn't have a configuration interface. You can use this
script to generate it
or write it from scratch using this
template.
On Linux, you can also create a configuration file using Network Manager 1.2, use the following command:
nmcli connection export hafnarfjordur > iphone.ovpn
though that didn't quite work in my experience.
Here is the config I successfully used to connect to my server:
client
remote hafnarfjordur.fmarier.org 1194
ca ca.crt
cert iphone.crt
key iphone.key
cipher AES-256-GCM
auth SHA512
proto udp
tls-remote server
remote-cert-tls server
ns-cert-type server
tls-auth ta.key 1
Using Viscosity on macOS
One of the possible OpenVPN clients you can use on macOS is Viscosity.
Here are the settings you'll need to change when setting up a new VPN connection:
- General
- Remote server:
hafnarfjordur.fmarier.org
- Remote server:
- Authentication
- Type: SSL/TLS client
- CA:
ca.crt
- Cert:
osx.crt
- Key:
osx.key
- Tls-Auth:
ta.key
- direction: 1
- Options
- peer certificate: Require certificate was signed for server use
- Compression: Off
- Networking
- send all traffic on VPN
- Advanced
add the following extra OpenVPN configuration commands:
cipher AES-256-GCM auth SHA512