Windows 2012 R2似乎自动下载并安装中级根证书

在准备用于生产的新的Windows 2012R2服务器时,我需要为支持我们的应用程序的网站安装(GlobalSign域名)SSL证书。 我通过生成一个证书请求,提交给GlobalSign,然后使用PEM格式化的证书完成请求。

通常情况下,我还需要去获取相关的GlobalSign DomainSSL中间证书并安装。 然而,相关的中间证书似乎得到自动安装,只要我configuration我的IIS站点绑定。

我知道,中间证书不在本地计算机证书存储中:

Intermediate Certification Authorities -> Certificates 

…在证书MMCpipe理单元中。

我先检查,然后奇迹般地出现,我跑过我的SSL证书.pfx导入和IIS绑定configuration在一个virgin 2012R2服务器上,并确认中间证书确实已自动安装。

我不记得Windows 2008 / R2发生这种情况。 这是一个新的function,或者默认情况下打开的东西是不是以前?

更新:

HBruijn的回答解释了上述我的第二个“处女”服务器上中间证书的外观。 我确实将证书导出为.pfx文件并将其导入到其他服务器上。 使用openssl工具进行检查可以发现根证书和中间证书的存在。

但是…在原始服务器上,我完成了一个挂起的证书请求,只加载了“PEM”格式的证书。 这不包括根/中间证书(我用openssl检查过)。

“.pfx”文件是PKCS#12存档文件 :用于将许多encryption对象存储为单个文件的存档文件格式。 它通常用于[snip]捆绑一个X.509证书和一个信任链的所有成员。

您将中间证书与SSL证书一起导入。

我也看到过去也发生过这种情况,我们遇到了一些麻烦,导致我看到了这一点。 我的Windows 7(SP1,企业)系统也一样。 用Wireshark和Sysinternals的Process Monitor进行挖掘可以发现以下几点。

我的一家证书商店有一个COMODO签名证书,证书链(b9b4c7a …)在我的任何证书存储中都不可用。 但是证书具有“授权信息访问”属性,其中包含URL http://crt.comodoca.com/COMODOHigh-AssuranceSecureServerCA.crt

打开此证书(通过mmc.exe的证书pipe理单元)以显示标准Windows“证书”对话框,触发下载上述URL,并将生成的b9b4c7a …证书放入中级证书颁发机构当前用户

它还被caching在c:\users\<currentUser>\C:\Users\mklooste\AppData\LocalLow\Microsoft\CryptnetUrlCache ,同时在MetadataContent文件夹中都有一个条目。

如果我现在重复相同的操作(在从当前用户的中间证书颁发机构存储中删除证书之后),它将被恢复,但这次不是从COMODO下载,而是从CryptnewUrlCache复制。

我无法从Microsoft获得有关此function的任何文档。 但是,他们似乎遵循RFC 5280第4.2.2.1节“授权信息访问” ,它说:

引用的CA颁发者描述旨在帮助证书用户select在证书用户信任的点处终止的证书path。

这一切都取决于您从证书颁发机构GlobalSign,Comodo,Symantec(以前称为VeriSign)收到的证书的格式。 如果您以PKCS#7格式收到证书,则会包含根证书和中间证书。 如果您收到了x.509中的证书,通常不会包含根证书和中间证书,因此您需要从证书颁发机构网站获取这些证书。 我已经在Windows IIS 6,7和8中安装了证书,而据我所知,推荐的格式是PKCS#7。 我没有使用openssl。 通过向导时,会自动安装根目录和中间目录。

您可以通过将其更改为.txt文件来查看您收到的证书文件。 您通常会看到===开始证书===和====结束证书===。 如果您看到其中的3个或4个,则根和/或中间体被捆绑在该证书文件中。 如果您只看到一个,那么您需要从您的证书颁发机构的站点获取根目录和中间目录。