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>
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.
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