不配置CDP的IIS客户端认证

本文关键字:客户端 认证 IIS 配置 CDP 不配 | 更新日期: 2023-09-27 18:08:20

我在Win2k8上运行IIS 7.5,并试图配置双向SSL。我已经在IIS中打开了"需要客户端证书",我已经在本地机器的受信任根存储中安装了有效的根证书,并且我已经安装了服务器证书并配置IIS来使用它。

当我第一次测试这个配置时,我能够连接到一个有效的证书,而无法连接到一个不受信任的证书。到目前为止一切顺利。但是,当我撤销用户证书时,该用户仍然能够使用被撤销的证书访问网站。我读到服务器可能一直在使用CRL的缓存副本,所以我使用"certutil -setreg chain'ChainCacheResyncFiletime @now"来清除缓存,重新导入我的CRL到中间证书颁发机构存储,然后再试一次。这一次,服务器拒绝了所有连接尝试,包括那些具有有效证书的尝试,返回403.13和"由于吊销服务器离线,吊销功能无法检查吊销"。

我的设置有点不寻常,因为CA服务器对我的网络不可用,所以没有OCSP和CDP。相反,每当发布新的CRL时,我就手动将其导入到服务器,每周调用一次。因此,我启用了"验证客户端证书撤销"answers"仅使用缓存的客户端证书验证撤销",以尝试强制撤销检查,并防止服务器试图转到不可达的CDP,从而检查失败,因为服务器不可达。

不幸的是,服务器似乎没有使用我加载到机器存储中的CRL,而是拒绝所有用户,因为它认为它没有有效的CRL,无法请求新的CRL。

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

不配置CDP的IIS客户端认证

请勿手动导入crl进行存储。获取CDP:)

你可以这样做:在您的基础设施中找到一台连接到CDP和您的服务器的服务器。

然后在那里部署新的CRL并更改DNS(或更改服务器上的hosts文件),以便在windows/IIS请求新的CRL时指向该服务器。

或者使这个新服务器成为代理(我认为它被称为反向代理),委托对新的CRL的请求来纠正CDP的目的地。

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