【发布时间】:2015-03-29 17:50:12
【问题描述】:
我正在尝试使用 X.509 证书对 API 用户进行身份验证,而且我几乎把它搞定了。唯一的问题是如何从 Apache 获取证书信息(尤其是 PEM 证书数据)到 Rails。
这个 ENV 变量包含我需要的内容:
ENV['SSL_CLIENT_CERT']
但这似乎是在生成乘客进程之后的第一个请求,而不是为每个请求重置。
Passenger 的作者对this thread 的回答似乎证实了 ENV 变量已被冻结并且不会针对每个请求进行重置。
有什么方法可以从 Apache 获取正确的证书数据到 Rails?
我想我可以使用一些魔法来创建自定义标头,但这不太安全,因为恶意客户端也可以设置它。
【问题讨论】:
-
PEM cert data会随着每个客户请求而改变吗?我认为除非在服务器上进行更改,否则它将保持不变。 -
我说的是客户端证书,它识别客户端 - 即根据定义必须随每个不同的客户端而变化。目前,Rails 将所有客户端视为第一个连接的客户端。
标签: ruby-on-rails apache ssl passenger