windows – IE / Chrome如何知道哪些中级CA在不属于链时使用?

前端之家收集整理的这篇文章主要介绍了windows – IE / Chrome如何知道哪些中级CA在不属于链时使用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的网络上的服务器使用RapidSSL CA颁发的证书进行签名,但不提供给完整的发行者链(RapidSSL CA的证书由GeoTrust CA颁发,这是一个受信任的根权限).

当我使用Firefox访问该网站时,我收到以下错误

The certificate is not trusted because no issuer chain was provided.
(Error code: sec_error_unknown_issuer)

但是,如果我使用IE或Chrome连接到网站,它可以工作,我注意到RapidSSL随后被加载为中级CA.我不明白Chrome / IE(我假设它使用Windows证书存储区)知道如何将RapidSSL添加为中间CA.

当我使用openssl s_client来调试连接时,我得到了预期的行为(根据我的说法).

仅使用GeoTrust作为CA时,我得到以下内容

Verify return code: 21 (unable to verify the first certificate)

仅使用RapidSSL作为CA:

Verify return code: 2 (unable to get issuer certificate)

使用时:

Verify return code: 0 (ok)

任何人都可以帮助我理解Windows如何将RapidSSL CA作为中间权限加载?

根据颁发的证书的授权信息访问(AIA)扩展中的URL信息下载CA证书.

我听说,Firefox使用自己的证书存储和/或链接引擎. Chrome和IE使用Windows中的一个.

证书验证过程

将证书提交给应用程序时,应用程序必须使用证书链引擎来确定证书的有效性.只有在证书链成功验证后,应用程序才能信任证书和证书所代表的身份.三个不同但相互关联的过程用于确定证书的有效性:

■证书发现要构建证书链,证书链引擎必须收集颁发CA证书和所有CA证书,直至根CA证书. CA证书是从CryptoAPI缓存,组策略或企业策略中收集的,或者作为最后的手段,从颁发的证书中的授权信息访问(AIA)统一资源定位符(URL)下载.从CryptoAPI缓存以外的位置下载证书后,会将其添加用户的CryptoAPI缓存中,以便更快地进行检索.

■路径验证当证书链引擎验证证书时,它会执行不要停留在提供的证书上.证书链中的每个证书都必须是验证,直到达到自签名根证书.验证测试可以包括验证authenticode签名,确定颁发CA证书是否包含在NTAuth存储中,或包含特定的应用程序或证书策略对象标识符(OID).如果一个证书未通过有效性测试,则整个链可能被视为无效并且未被调用应用程序使用.

猜你在找的Windows相关文章