How to share a vagrant machine with https

5.5k views Asked by At

I have a working vagrant VM I want to Share. In my Vagrantfile I have:

config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "private_network", ip: "192.168.1.15"
config.vm.network "forwarded_port", guest: 443, host: 443

in the virtual host I have

<VirtualHost *:443>
...
ServerAlias *.vagrantshare.com
....
</Virtualhost>

not sure about the first line but it was there already

I share the machine with

vagrant share --https 443

this is the output:

==> default: Detecting network information for machine...
default: Local machine address: 127.0.0.1
default:  
default: Note: With the local address (127.0.0.1), Vagrant Share can only
default: share any ports you have forwarded. Assign an IP or address to your
default: machine to expose all TCP ports. Consult the documentation
default: for your provider ('virtualbox') for more information.
default:  
default: Local HTTP port: 8080
default: Local HTTPS port: 443
default: Port: 2222
default: Port: 443
default: Port: 8080
==> default: Checking authentication and authorization...
==> default: Creating Vagrant Share session...
default: Share will be at: towering-badger-9312
==> default: Your Vagrant Share is running! Name: towering-badger-9312
==> default: URL: http://towering-badger-9312.vagrantshare.com
==> default:  
==> default: You're sharing your Vagrant machine in "restricted" mode. This
==> default: means that only the ports listed above will be accessible by
==> default: other users (either via the web URL or using `vagrant connect`).

I can see it in vagrant cloud but I got an error while trying to access it via https:

towering-badger-9312.vagrantshare.com is currently unable to handle this request.
HTTP ERROR 500

not any other useful message in the console, any idea how to debug this?

thanks

1

There are 1 answers

4
Marcin Orlowski On

You need to replace this line

config.vm.network "forwarded_port", guest: 443, host: 443

by i.e.:

config.vm.network "forwarded_port", guest: 443, host: 8443

First, because forwarded_port is for port accessing from the host and second, you will not be able to bind to port 443 on host anyway, unless Vagrant is run as root because of binding to ports < 1023 require root privileges. This is also documented in Vagrant docs here.

Also

vagrant share --https 443

is redundant (docs):

HTTPS (SSL)

Vagrant Share can also expose an SSL port that can be accessed over SSL. For example, instead of accessing http://foo.vagrantshare.com, it could be accessed at https://foo.vagrantshare.com.

vagrant share by default looks for any SSL traffic on port 443 in your development environment. If it cannot find any, then SSL is disabled by default.

so

vagrant share

should suffice (assuming there's no other issue).