OpenVPN on ChromeOS is a little bit of a mess, and as the most flexible VPN server it is a massive pain to use. Indeed, Wireguard etc has many advantages and in my usage is flawless on ChromeOS, but it doesn’t support TCP which very annoying when trying to connect from a restricted network to your home (e.g local library).
Chrome’s inbuilt VPN client is much easier/cleaner to use, less faffy and bloated than android apps and in addition to this ChromeOS Flex and older Chromebooks don’t support the recommended android apps. Therefore you are left with trying to get the underpowered inbuilt client to work.
After spending hours trying to get this all to work, here is my advice:
- Follow guide here (https://docs.pivpn.io/install/) changes:
- Yes to modifying encryption settings
- Choose “No” to OpenVPN 2.4 for maximum compatibility, ChromeOS doesn’t support tls-crypt.
- When generating client certificates use “pivpn add nopass” (see docs)
- Copy the OVPN to your Chromebook (use scp @:/home//ovpns/.ovpn . to copy to current directory)
- Install pip (sudo apt install python3-pip)
- Use pip to install the required pyOpenSSL library (pip3 install pyOpenSSL)
- Use the trexx onc_converter.py script
- wget https://gist.github.com/trexx/7aa763b2432f0b0952e56a1822845aa0/raw/1096441535530da7786b0f5a0b5b6fbffe8e24b3/onc_converter.py
- python3 onc_converter.py --infile .ovpn --outfile .onc
- Import the onc file at chrome://network/General
- Then go to settings, network, vpn to find your newly added VPN. If using a non standard port I found I had to add it (arrow, under server hostname append :) for it to work.
Hope this helps, spent all day trying to do this aha.
Couldn’t be done without some advice from /u/xjrqh (and for not abusing the wrong OVPN file I sent)