He creado un servidor web vagabundo/virtualbox como un sandbox de desarrollo, y configuré apache en la máquina virtual para ssl (en el puerto predeterminado 443, con un autofirmado certificado). He páginas en la misma máquina virtual sometieron a pruebas de rizoAccediendo a apache en un sandbox vago utilizando ssl (reenvío de puertos)
curl -v -k https://mysite.mydomain.com/testSearch/results?postcode=WN8+0BA
y parece que funciona bastante fácilmente, así que estoy satisfecho de que Apache está configurado y que funciona en la máquina virtual correctamente.
Sin embargo, cuando intento acceder a la máquina virtual desde los navegadores de mi host a través de https, no puedo hacerlo.
He añadido
config.vm.forward_port "https", 443, 8443
a mi vagrantfile, pero tratando de acceder a la url
https://mysite.mydomain.com:8443/testSearch/results?postcode=WN8+0BA
simplemente no puede mostrar la página que he intentado con varios navegadores diferentes: IE da un sin sentido "Internet Explorer no puede mostrar la página web"; Chrome da
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 me da
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)
pero incluso la pestaña Firebug neto no me dice nada más que eso.
No obtengo nada en los registros de acceso o error en el apache de VM, así que sospecho que vagabundo no reenvía el ssl.
- VM sistema operativo del usuario: centos56x64
- Anfitrión: Windows 7 de 64 bits
- JRuby: 1.6.3 (rubí-1.8.7-p330) (2011-07-07 965162f) (Java HotSpot (TM) de 64 bits del servidor VM 1.6.0_24) [Windows 7 amd64 java]
- Vagrant: 0.7.8
- VirtualBox: 4.0.12
Cualquier ayuda sería aceptada con agradecimiento.
Al usar esta solución, debe hacer los pasos 2 y 3 una y otra vez cuando destruya la caja Vagrant. Usando un script de aprovisionamiento (bash), Chef o Puppet harán que esta tarea sea mucho menos repetitiva. –
Para googlers, tuve que especificar tanto un 'SSLCertificateFile' a un archivo' .crt' y un 'SSLCertificateKeyFile' a un archivo' .key'. –