I’m having problems with the ssl_requirement plugin. I’m moving my
app from one server to another. Both servers have the same versions
of ruby and rails, and the code and ssl certificates on the two
servers is identical. When a user hits the “checkout” button, he/she
issues a POST request for the checkout_1 action. When things are
working, the server then uses GET to render the template (at least,
that’s what it looks like it’s doing). This is where the issue
The working server renders the template/layout. The misbehaving
server redirects to the same page over and over until it gives up.
The good version looks like this:
Rendering within layouts/store
Completed in 0.29177 (3 reqs/sec) | Rendering: 0.26901 (92%) | DB:
0.02111 (7%) | 200 OK [https://126.96.36.199/store/checkout_1]
The malfunctioning server looks like this:
Redirected to https://188.8.131.52/store/checkout_1
Filter chain halted as
@filter=:ensure_proper_protocol>] returned false.
Completed in 0.00024 (4236 reqs/sec) | DB: 0.00000 (0%) | 302 Found
(repeat ad nauseum)
If I go directly to the https:// address, I get the same problem.
However, if I’m at the home page and add an ‘s’ to the ‘http’, it
encrypts. On the working version, it redirects to a non-encrypted
‘http’ home page.
So, it looks like the ssl_requirement plugin is acting up. For the
checkout_1 action, I have an :ssl_required declaration in the
controller. I also have the ‘include SslRequirement’ in my
application controller. But, like I said, the code is identical for
the two apps. That’s what I can’t figure out.
Does this infinite loop look familiar or dangerously suspicious to
anybody? I’d appreciate any help or suggestions, and I’ll supply any
more information that could be helpful. The hosting tech support has
looked at the problem and is as stumped as I am. They said that the
Apache configs were the same, too, for what it’s worth.