没有CDP的IIS客户端身份验证

时间:2014-06-13 01:28:03

标签: c# certificate iis-7.5 x509

我在Win2k8上运行IIS 7.5,并尝试配置双向SSL。我已在IIS中启用了“要求客户端证书”,我已在本地计算机的受信任根存储中安装了有效的根证书,并且我已安装服务器证书并配置了IIS以供使用它

当我第一次测试此配置时,我能够连接有效的证书,并且无法连接不受信任的证书。到现在为止还挺好。但是,当我撤销用户证书时,该用户仍然可以使用撤销的证书访问该网站。 我读到服务器可能一直在使用CRL的缓存副本,所以我使用" certutil -setreg chain \ ChainCacheResyncFiletime @ now"清除缓存,将我的CRL重新导入中间证书颁发机构存储,然后再次尝试。这次,服务器拒绝所有连接尝试,包括那些具有有效证书的尝试,返回403.13和"撤销功能无法检查吊销,因为吊销服务器处于脱机状态。"

我的设置有点不寻常,因为我的网络无法使用CA服务器,因此没有OCSP且没有CDP。相反,每当发出新CRL时,我都会手动将CRL导入服务器,每周调用一次。因此,我已启用“验证客户端证书撤销”功能。和#39;使用仅缓存客户端证书验证吊销',尝试强制检查吊销并防止服务器尝试转到无法访问的CDP,从而导致检查失败,因为服务器无法访问。

不幸的是,看起来服务器没有使用我加载到机器商店的CRL,而是拒绝所有用户,因为它认为它没有有效的CRL而且不能请求新的用户。

当我无法访问CDP时,如何让客户端身份验证和双向SSL与撤销检查一起使用?

1 个答案:

答案 0 :(得分:0)

不要手动存储CRL来存储。访问CDP:)

你可以这样做: 在基础结构中查找已连接到CDP以及服务器的服务器。

然后在那里部署新CRL并在Windows / IIS请求新CRL时更改DNS(或更改服务器上的主机文件)以指向此服务器。

或者让这个新服务器成为一个代理(我认为它称为反向代理),将新CRL的请求委托给CDP的正确目的地。

两种解决方案都应该有效。提到的第一个可能有点难以实现和维护,因为您必须监视脚本(或人员)是否真正部署了CRL。