I would recommend using OpenVPN as it has apps for both apple, android and windows devices.
You can check out this article for setting up OpenVPN. This example is in the old style of WebUI, however it is similar.
To create a OpenVPN server, or any VPN server for that matter, you do need a public IP address.
For other devices you would need to construct a .ovpn file to upload to the apps, you can find for a windows machine here.
To generate certificates you can go to WebUI -> System -> Administration -> Certificates