我在Win2k8上运行IIS7.5,并且正在尝试配置双向SSL。我已经在IIS中打开了要求客户端证书,我已经在本地计算机的受信任根存储中安装了一个有效的根证书,并且我已经安装了服务器证书并将IIS配置为使用它。
当我第一次测试此配置时,我能够使用有效的证书进行连接,而无法使用不受信任的证书进行连接。到目前一切尚好。但是,当我撤销一个用户证书时,该用户仍然能够使用被撤销的证书访问网站。我了解到服务器可能一直在使用-setreg的缓存副本,因此我使用"certutil CRL chain\ChainCacheResyncFiletime @now“清除缓存,将我的CRL重新导入到中间证书颁发机构存储中,然后重试。这一次,服务器拒绝了所有连接尝试,包括那些具有有效证书的尝试,返回403.13,并且“吊销功能无法检查吊销,因为吊销服务器处于脱机状态。”
我的设置有点不寻常,因为CA服务器对我的网络不可用,因此没有OCSP和CDP。相反,每当发出新的CRL时,我都会手动将CRL导入服务器,每周调用一次。因此,我启用了“验证客户端证书吊销”和“仅使用缓存的客户端证书验证吊销”,以尝试强制检查吊销,并防止服务器尝试转到无法访问的CDP,从而由于服务器无法访问而导致检查失败。
不幸的是,服务器看起来没有使用我加载到机器存储中的CRL,而是拒绝所有用户,因为它认为它没有有效的CRL,无法请求新的CRL。
当我没有访问CDP的权限时,如何让客户端身份验证和双向SSL与撤销检查一起工作?
发布于 2014-06-13 16:49:51
不要手动导入CRL进行存储。访问CDP :)
您可以这样做:在您的基础设施中找到一台连接到CDP和您的服务器的服务器。
然后,当windows/IIS请求新的CRL时,在那里部署新的CRL并更改DNS (或更改服务器上的主机文件)以指向此服务器。
或者使此新服务器成为代理(我认为它称为反向代理),将对新CRL的请求委派到CDP处的正确目的地。
这两种解决方案都应该有效。前面提到的可能更难实现和维护,因为您必须监视脚本(或人员)是否真的部署了CRL。
https://stackoverflow.com/questions/24196407
复制相似问题