我的一位客户希望避免在他的某个网站上测试证书吊销列表。据我所知,我们已在 IIS 元数据库中将此值 (CertCheckMode) 设置为 1:
问题是此配置不起作用。我正在使用 IIS Metabase Explorer 查看该配置。它在网站的 W3SVC 文件夹中显示正常,并在 ROOT IIsVirtualDirectory 和应用程序实际所在的其他虚拟目录(我们将其命名为 APP)中继承。
应用程序被隔离到专用池中。如果该值出现在虚拟目录中,为什么 IIS 仍尝试获取 CRL?
非常感谢,虚拟啤酒等待解答者 ;)
答案1
您可以尝试运行命令cscript adsutil.vbs SET w3svc/n/CertCheckMode 1
,其中 n 是网站的标识符。如果有帮助,请告诉我。
答案2
尽管这是一篇老帖子,但也许有人会遇到这种情况。
我确实遇到过类似的情况。经过大量时间的思考后:
1)CertCheckMode配置参数似乎仅适用于客户端证书验证
2) .NET 将验证强签名程序集并生成发布者证据 - 如果此功能已启用(默认情况下),则每次重新启动应用程序池时都会检查 CRL。如果有防火墙阻止出站端口 80,则应用程序将挂起,直到所有 CRL 站点超时(约 3-5 分钟)
解决方案是:a) 启用出站端口 80 b) 禁用发布者证据的生成:
要做到这一点:
在 machine.config (!) 中,这将在 (app|web).config 中不起作用
<configuration>
<runtime>
<generatePublisherEvidence> Element
<generatePublisherEvidence enabled="false"/>
<runtime/>
在我的例子中,machine.config 的第 127 行有一个空标签