/ / Problema SSL de Rails: (https://example.com) no coincide con request.base_url (http://example.com) - ruby-on-rails, ruby, ssl

Problema de Rails SSL: (https://example.com) no coincide con request.base_url (http://example.com) - ruby-on-rails, ruby, ssl

Acabo de instalar un certificado SSL en mi sitio. Desafortunadamente se ha roto la funcionalidad de inicio de sesión. Después de enviar el formulario de inicio de sesión en el sitio, simplemente redirige a la página de inicio. Al revisar el registro de rieles se muestra este error:

(https://example.com) didn"t match request.base_url (http://example.com)

Aquí está mi archivo virtualhosts. Supongo que necesito forzar SSL de alguna manera?

<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:443>
ServerAdmin hello@example.com
ServerName example.com
ServerAlias www.example.com
SSLEngine on
SSLCertificateFile /home/user/sharetribe/lib/certificates/www_example_com.crt
SSLCertificateKeyFile /home/user/sharetribe/lib/certificates/example.com.key
SSLCertificateChainFile /home/user/sharetribe/lib/certificates/www_example_com.ca-bundle

ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>

Respuestas

4 para la respuesta № 1

Simplemente ejecute en el mismo error. En config/environments/production.rb Asegúrate de haber configurado:

config.force_ssl = true

Si bien no está estrictamente relacionado con este problema, después de establecer esta configuración, deberá asegurarse de que su proxy inverso (si tiene uno) está configurado para reenviar el protocolo utilizado para los rieles enviando el X-Forwarded-Proto Encabezado desde el proxy a los rieles. La forma de hacerlo depende de qué proxy inverso utilice (Apache, nginx, etc.) y de cómo lo haya configurado, por lo que es mejor que busque la documentación específica del proxy inverso que está utilizando.