随着 Amazon S3 和 CloudFront 的 CA 根证书即将更改,我今天进行了审核,检查机器是否确实安装了 Amazon Root CA [1234] 证书,参考:如何为 AWS 转向自己的证书颁发机构做好准备
令我惊讶的是,大多数机器没有任何所需的证书。我想知道 Windows Server 2016 通过 Windows Update 自动下载和安装根证书更新的要求是什么:
- 这些是独立的工作组机器,未加入域。
- 证书传播(CertPropSvc)设置为自动启动并正在运行。
- 加密服务(CryptSvc)设置为自动启动并正在运行。
- 他们启用了 Windows 更新,据称已经完全更新。
我在某处读到(抱歉,我没有保留 URL),WinHttp 请求可能导致根证书被自动提取crypt32.dll
并安装。对于来自常规(非以管理员身份运行)PowerShell 提示符的“Amazon Root CA 1”证书,以下方法对我来说确实有效:
$winHttp = New-Object -ComObject WinHttp.WinHttpRequest.5.1
$winHttp.Open('GET', 'https://good.sca1a.amazontrust.com/')
$winHttp.Option(4) = 0x3300
$winHttp.Send()
执行后,“Amazon Root CA 1”证书出现在证书 - 本地计算机 > 受信任的根证书颁发机构 > 证书以及第三方根证书颁发机构 > 证书中。
同样,对以下 URL 的请求也添加了 Amazon Root CA 2、3 和 4 证书:
- https://good.sca2a.amazontrust.com/
- https://good.sca3a.amazontrust.com/
- https://good.sca4a.amazontrust.com/
当然,我可以编写脚本让这些请求在场中的所有服务器上安装这些证书,但这似乎是一次大黑客攻击。这也是一个问题 - 如果他们没有安装 CA Root 更新,他们是否也没有安装 CRL 更新?
所以我的两个问题是:
- 为什么 Root CA 更新不能像在 Windows 10 台式机上那样通过 Windows 更新安装?
- 是否有可以启用类似桌面行为的设置?