【问题标题】:SSL client cert authentication for only some URLs?仅针对某些 URL 的 SSL 客户端证书身份验证?
【发布时间】:2011-04-18 10:14:03
【问题描述】:

如果我使用 SSL 客户端证书对我的客户端进行身份验证,那一定是一个站点范围的过滤器,还是我可以要求或不要求从应用程序中对每个 URL 进行身份验证?所以我愿意

https://mysite.com/my_url 不关心客户是谁,只使用“普通”https https://mysite.com/my_sensitive_url 要求客户端使用有效的客户端证书

我在 Ruby on Rails 工作,但我对 SSL 客户端证书身份验证是否足够灵活的一般问题感兴趣。我可以想象一个针对不同 URL 设置不同设置的手写 apache conf 可能会做到这一点,但我真的更愿意在应用程序级别定义这种事情。

【问题讨论】:

  • 从实践中:这可以通过不需要客户端证书来完成(在 SSL 级别)。然后在客户端发送带有 URL 的 HTTP 请求后,服务器可以按原样继续,或者重新协商 SSL 连接,这一次需要('想要'或'需要')客户端证书。

标签: authentication ssl


【解决方案1】:

您将 (a) 将服务器设置为通过 SSL 证书进行身份验证; (b) 将服务器设置为“想要”而不是“需要”SSL 客户端身份验证,然后 (c) 为需要用户登录的特定 URL 或模式定义访问规则,而不是为其他人。

【讨论】:

  • 只是为了说明这一点......有一个问题,服务器不知道客户端是否需要 /my_url 或 /my_sensitive_url 直到 SSL 握手完成后,因此服务器不'直到为时已晚才知道是否需要证书。此答案的 (b) 部分无需 SSL 重新协商即可解决此问题。
猜你喜欢
  • 2013-01-06
  • 2014-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-29
  • 2011-04-09
  • 2013-10-07
  • 1970-01-01
相关资源
最近更新 更多