web-dev-qa-db-fra.com

Problème SSL Rails: (https://example.com) ne correspond pas à request.base_url (http://example.com)

Je viens d'installer un certificat SSL sur mon site. Malheureusement, la fonctionnalité de connexion a été interrompue. Après avoir soumis le formulaire de connexion sur le site, il redirige simplement vers la page d'accueil. La vérification du journal de Rails montre cette erreur:

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

Voici mon fichier virtualhosts. Je suppose que j'ai besoin de forcer SSL d'une manière ou d'une autre?

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

<VirtualHost *:443>
   ServerAdmin [email protected]
   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>
8
Matt Hough

Courez juste à la même erreur. Dans config/environments/production.rb, assurez-vous d'avoir défini:

config.force_ssl = true

Bien que cela ne soit pas strictement lié à ce problème, vous devez vous assurer que votre proxy inverse (le cas échéant) est configuré pour transmettre le protocole utilisé à Rails en envoyant l'en-tête X-Forwarded-Proto du proxy à Rails. La façon dont cela est fait dépend du proxy inverse que vous utilisez (Apache, nginx, etc.) et de la manière dont vous l'avez configuré. Il est donc préférable que vous consultiez la documentation spécifique au proxy inverse que vous utilisez.

13
Qwertie

J'ai eu un problème similaire lors de l'utilisation de Flexible SSL de Cloudflare. Je l'ai changé en Full et j'ai activé SSL sur mon serveur Heroku.

Trouvez la solution ici: http://til.obiefernandez.com/posts/875a2a69af-cloudflare-flexible-ssl-mode-breaks-Rails-5-csrf

2
Zavitoski