Accessing apache on a vagrant sandbox using ssl (port forwarding)
1) Configure the file Vagrantfile
Vagrant::Config.run do |config|
config.vm.box = "lucid32"
config.vm.network "33.33.33.10"
config.vm.forward_port "http", 80, 8080
end
2) Access your VM "lucid32"
vagrant ssh
3) Inside your VM, configure the Apache "Virtual Host":
<VirtualHost 33.33.33.10:80>
ServerName your-domain.dev
DocumentRoot /vagrant
DirectoryIndex index.php index.html index.htm
<Directory /vagrant>
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
<VirtualHost 33.33.33.10:443>
ServerName your-domain.dev
DocumentRoot /vagrant
DirectoryIndex index.php index.html index.htm
<Directory /vagrant>
AllowOverride All
Allow from All
</Directory>
SSLEngine on
SSLCertificateFile /path/to/certicate/apache.pem
</VirtualHost>
4) Exit VM and configure the file "hosts" in your host machine:
33.33.33.10 your-domain.dev
Mark Baker
ZCE PHP 5.3. Senior Developer at Recharge.com Coordinator of the PHPOffice suite of Open Source libraries (PHPExcel, PHPPowerPoint, PHPWord, PHPProject and PHPVisio) on github - https://github.com/PHPOffice/ http://www.zend.com/img/yellowpages/zce_php5-3_logo.gif
Updated on June 07, 2022Comments
-
Mark Baker almost 2 years
I've built a vagrant/virtualbox web server as a development sandbox, and configured apache in the VM for ssl (on the default port 443, with a self-signed certificate). I've tested pages on the VM itself using curl
curl -v -k https://mysite.mydomain.com/testSearch/results?postcode=WN8+0BA
and it seems to work quite happily, so I'm satisfied that apache is correctly configured and working in the VM.
However, when I try to access the VM from my host's browsers over https, I'm unable to do so.
I've added
config.vm.forward_port "https", 443, 8443
to my vagrantfile, but trying to access the url
https://mysite.mydomain.com:8443/testSearch/results?postcode=WN8+0BA
simply can't display the page I've tried with several different browsers: IE gives a meaningless "Internet Explorer cannot display the webpage"; Chrome gives
SSL connection error Unable to make a secure connection to the server. This may be a problem with the server or it may be requiring a client authentication certificate that you don't have. Error 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL protocol error.
Firefox gives me
An error occurred during a connection to mysite.mydomain.com:8443. SSL received a record that exceeded the maximum permissible length. (Error code: ssl_error_rx_record_too_long)
but even the Firebug Net tab doesn't tell me anything more than that.
I'm not getting anything in the access or error logs on the VM apache, so I suspect that vagrant isn't forwarding the ssl at all.
- VM Guest OS: centos56x64
- Host: Windows 7 64-bit
- JRuby: 1.6.3 (ruby-1.8.7-p330) (2011-07-07 965162f) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_24) [Windows 7-amd64-java]
- Vagrant: 0.7.8
- VirtualBox: 4.0.12
Any assistance would be gratefully accepted.
-
Martin de Keijzer over 10 yearsWhen using this solution you have to do steps 2 and 3 over and over again when you destroy the Vagrant box. Using a provisioning (bash) script, Chef or Puppet will make this task a lot less repetitive.
-
Morgan Delaney about 9 yearsFor googlers, I had to specify both a
SSLCertificateFile
to a.crt
file and aSSLCertificateKeyFile
to a.key
file.