如何在不访问HTTP层的情况下模仿浏览器X509客户端证书validation
我正在通过X509客户端证书阅读有关身份validation的文章,但由于我在Heroku上运行应用程序,因此无法让服务器请求客户端证书,因此我无法访问HTTP层。
我在Stackoverflow上看到了对类似问题的回复,该问题表示使用自定义标头。
我想模仿使用自定义标头的应用程序服务器validation客户端证书。 我正在使用Ruby,所以如果有人知道已经完成此任务的库,那将会有所帮助。 否则,是否可能,我需要什么资源? 我发现了这个问题,但它是关于validationSSL证书,我不确定是否适用。
对于这个问题的模糊性我很抱歉,但我正处于这个问题的起点。
您的应用堆栈无法控制SSL,因为它已在Web服务器上终止。 所有validation工作都由Web服务器完成,然后只有SSL_ *标头转到应用服务器(例如,查找Apache的SSLOptions)。 如果您无法控制Web服务器,您甚至可能无法启用客户端证书要求。 我找不到任何通过heroku打开此要求的选项: https ://devcenter.heroku.com/articles/ssl#customdomain-ssl
如果您有某种方式获得SSL_ *标头,那么无论Web服务器端validation如何,您都可以使用openssl作为军刀来validation证书(通常在SSL_CLIENT_CERT标头中)。 例如,在ruby中看到这一点: 来自自己的CA的OpenSSLvalidation证书
另请注意,证书validation是检查证书标志和其他属性(例如正式检查)的过程。 要对用户进行身份validation,您必须通过DN或E字段将该已validation的证书链接到用户。
- 使用Web套接字进行点对点文件共享
- 如何使用Ruby on Rails 3检查HTTP请求的字段’Content-Length’?
- 如何使用post方法在ROR的def create函数中从客户端获取数据
- 如何在Ruby 1.9.1中将Net :: HTTP响应转换为某种编码?
- Ruby中的HTTP.post_form,带有自定义标头
- Rails 3.2`link_to`(在电子邮件中)与`method :: put`仍然产生GET请求
- Node.js – 在HTTP GET请求查询中发送时,数组转换为对象
- 防止rails 3上的ruby解析JSONpost
- 使JRubyinheritanceJava代理设置