The domain must be public and reachable from the internet.

If you do not know your server's IP address ahead of time, $ vagrant up may fail initially. You need to assign your domain to the new server via an A record or a floating IP address. As long as your domain resolves to the created server this will work!

Simply run $ vagrant provision once the domain is resolving properly!

Make sure your domain's Server Name is defined first, followed by any aliases.