1

我正在阅读这篇关于通过 X509 客户端证书进行身份验证的文章,但是当我在 Heroku 上运行应用程序时,我将无法让服务器请求客户端证书,因此我无法访问 HTTP 层。

我在 Stackoverflow 上看到了对类似问题的回复,该问题说要使用自定义标头。

我想通过使用自定义标头的应用程序服务器来模拟客户端证书验证。我正在使用 Ruby,所以如果有人知道已经完成此任务的库,那将很有帮助。否则,有可能吗?我需要哪些资源?我发现了这个 SO question,但它是关于验证 SSL 证书的,我不确定这是否适用。

抱歉这个问题含糊不清,但我正处于这个起点。

4

1 回答 1

2

您的应用程序堆栈无法控制 SSL,因为它已在 Web 服务器上终止。所有验证工作都由 Web 服务器完成,然后只有 SSL_* 标头进入应用服务器(例如,查找 Apache 的 SSLOptions)。如果您无法控制 Web 服务器,您甚至可能无法打开客户端证书要求。而且我找不到通过heroku打开此要求的任何选项:https ://devcenter.heroku.com/articles/ssl#customdomain-ssl

如果您以某种方式获得 SSL_* 标头,那么无论 Web 服务器端验证如何,您都可以使用 openssl 作为军刀来验证证书(通常在 SSL_CLIENT_CERT 标头中)。例如在 ruby​​ 中看到这个:OpenSSL verify certificate from own CA

还要记住,证书验证是检查证书签名和其他属性的过程,例如形式检查。例如,要对用户进行身份验证,您必须通过 DN 或 E 字段将该经过验证的证书链接到用户。

于 2013-01-05T17:50:37.000 回答