Ruby on rails Rails简单验证码不通过HTTPS

Ruby on rails Rails简单验证码不通过HTTPS,ruby-on-rails,ruby,ssl,nginx,captcha,Ruby On Rails,Ruby,Ssl,Nginx,Captcha,我正在使用simple\u captcha2gem与Rails进行身份验证,并且在开发过程中工作良好,但是在生产过程中,captcha图像/代码没有经过SSL层,因此图像没有在captcha表单中呈现。我使用本教程为多个域设置了OpenSSL,除了simple\u captcha2之外,它在所有方面都运行良好 以下是Firefox的错误输出: Loading mixed (insecure) display content "http://example.com/simple_capt

我正在使用
simple\u captcha2
gem与Rails进行身份验证,并且在开发过程中工作良好,但是在生产过程中,captcha图像/代码没有经过SSL层,因此图像没有在captcha表单中呈现。我使用本教程为多个域设置了OpenSSL,除了
simple\u captcha2
之外,它在所有方面都运行良好

以下是Firefox的错误输出:

Loading mixed (insecure) display content "http://example.com/simple_captcha?code=f987a2c87ea145419d79a00d6a257df701e2bea8&time=1465962694" on a secure page

在my
nginx.conf
中添加以下行(如上所述)解决了
request.protocol
返回错误协议的问题:

proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Ssl on;

对于未加载的验证码图像,无论是安全内容还是不安全内容,都必须安装
imagemagick

将http更改为https,它应该可以正常工作。如果他们使用简单的验证码2,就像gem本身的源代码中的某个地方一样?我在Github上搜索了代码库,没有找到任何与该URL匹配的内容。因此,它似乎不是由gem直接生成的(尽管它可能是gem的依赖项之一)。就像已经说过的,改变
http://anrcho.com
https://anrcho.com
不知何故,它应该可以工作。我刚刚找到了它构建URL的位置,但我不确定是否应该编辑gem的源代码,或者是否有更好的路由可用。如果请求的协议与https匹配,代码应该使用https(根据代码)。你是如何运行你的rails应用程序的(例如,nginx代理背后的puma)?通常,你需要nginx中的一条指令通过代理转发协议,以便rails知道请求是https。如果你能提供更多细节,我(或其他人)可能会帮助你得到答案。