我们有许多 Exchange 服务器无法访问互联网。更新 Exchange 时,所有 .NET 程序集都已签名,这意味着安装程序需要在更新过程中检查 Microsoft 的 CRL。是否有一个明确的 URL 列表可以添加到我们的防火墙或代理规则中?我尽我所能搜索了互联网,但找不到好的答案或 KB/Technet 文章。
我知道可以禁用 CRL 检查,但这不是我们组织的首选解决方案。
答案1
如果您浏览%WINDIR%\Microsoft.NET\assembly\GAC*
并查看其中的一些 DLL(.NET 程序集),当您右键单击其中一个 DLL 并查看其属性时,您会注意到它们上有一个“数字签名”选项卡。
(如果图片太小看不清请右键点击图片在新标签页中打开)
此处列出了签署这些程序集所涉及的证书的 CDP(CRL 分发点)。这些是您需要访问以验证 CRL 的 URL。
如上图所示,答案是 crl.microsoft.com。如果您允许 crl.microsoft.com 访问互联网,那么一切就绪了。
启动 .NET 应用程序时,.NET Framework 将尝试下载任何已签名程序集的 CRL。如果您运行的系统无法访问 Internet,或者无法访问 Microsoft.com 域,则您可能会在启动或运行某些应用程序时遇到延迟。如本文所述,所有托管代码在启动前都会通过 .net 运行时针对 crl.microsoft.com 进行证书检查