2012-10-03 38 views
0

在IIS 7中,我为一个站点创建了一个https绑定,并且我想要求https的客户端证书并仍保留我的http端点。需要IIS中的客户端证书而不需要SSL

也就是说,我希望我的https端点需要客户端证书,而不需要全面使用SSL并禁止访问我的http端点(通过SSL Settings中的“require SSL”)。这可能吗?

+1

客户端无法使用仅使用传输层安全性的HTTP(而不是HTTPS)提供证书。 – akton

+0

我想要求客户端证书,而不需要全面的SSL(我想保留http端点,但需要https的客户端证书) – user1325378

回答

1

客户端证书通常用于双向SSL,因此不仅仅是服务器,客户端也使用私钥对流量进行加密。

如果您不想强制实施https,那么您可以尝试接受客户端证书(请参阅SSL设置),然后在您的应用程序中实施证书验证。 MSDN上

见Request.ClientCertificate更多细节

if (HttpContext.Current.Request.IsSecureConnection) 
{ 
// it's SSL, so check the client cert 
bool authorized = IsClientCertAuthorized(HttpContext.Current.Request.ClientCertificate) 
} 

然后根据需要实现该方法。

注意:我没有测试过,所以如果您尝试过,请发表评论。

+0

感谢您的回复。我没有在代码中工作,我正在使用IIS管理器UI。有没有办法通过UI来做到这一点? – user1325378

+0

如果有人可以将它变成一个托管的iis模块,那么你可以将该模块添加到管道中,并返回一个403.7-如果没有通过ssl的客户端证书,则返回一个所需的客户端证书 – Csaba

相关问题