Authentication 仅针对某些URL的SSL客户端证书身份验证?

Authentication 仅针对某些URL的SSL客户端证书身份验证?,authentication,ssl,Authentication,Ssl,如果我使用SSL客户端证书对我的客户端进行身份验证,那么这是否一定是一个站点范围的过滤器,或者我是否可以要求在应用程序中对每个URL进行身份验证?所以我想 不关心客户是谁,只使用“普通”https 要求客户端使用有效的客户端证书 我在RubyonRails中工作,但我对SSL客户端证书身份验证是否足够灵活的一般问题感兴趣。我可以想象,一个手工编写的apache conf可以为不同的URL提供不同的设置,但我更愿意在应用程序级别定义这类内容。您可以(a)将服务器设置为通过SSL证书进行身份验证;(

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

不关心客户是谁,只使用“普通”https 要求客户端使用有效的客户端证书


我在RubyonRails中工作,但我对SSL客户端证书身份验证是否足够灵活的一般问题感兴趣。我可以想象,一个手工编写的apache conf可以为不同的URL提供不同的设置,但我更愿意在应用程序级别定义这类内容。

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

仅对此进行阐述。。。存在一个问题,即服务器直到SSL握手完成后才知道客户端是否需要/my_url或/my_sensitive_url,因此服务器直到为时已晚才知道是否需要证书。这个答案的(b)部分解决了这个问题,而不需要SSL重新协商。从实践来看:这可以通过不需要客户端证书来实现(在SSL级别)。然后,在客户端发送带有URL的HTTP请求后,基于此,服务器可以按原样继续,或者重新协商SSL连接,这次需要('want'或'need')客户端证书。