[总结]Windows Crypto API 自动更新根证书问题原因及解决方案

简介: [总结]Windows Crypto API 自动更新根证书问题原因及解决方案

项目场景:

最近在使用Windows Crypto API 做验签,遇到的一些问题.


问题描述

在调用Windows Crypto API时 发现有网络请求(microsoft/DigiCert等网站)的流量


原因分析:

CertGetCertificateChain->CRYPT32!CChainPathObject::CChainPathObject()这个函数内会进行区分


问题结论

调用Windows Crypto API时存在自动更新根证书 自动访问特定网站下载证书行为.


解决方案:

CertGetCertificateChain function (wincrypt.h)

官网解释

dwFlag解释

Value Meaning
CERT_CHAIN_CACHE_END_CERT 0x00000001 当这个标志设置,最终证书缓存,这可能会加快正在建设的过程。
默认情况下,最终的证书是不缓存,它需要验证每次链构建。
CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY 0x80000000 吊销证书检查只访问缓存的url。
CERT_CHAIN_REVOCATION_CHECK_OCSP_CERT 0x04000000 这个标志内部使用在链构建一个在线证书状态协议(OCSP)签名者证书,以防止循环吊销证书检查。链建设期间,如果签署的OCSP反应是一个独立的OCSP签名者,然后,除了原来的链构建,还有第二个链构建OCSP签名者证书本身。这个标志这第二个链构建期间用于抑制递归独立OCSP签名者证书。如果签名者证书包含szOID_PKIX_OCSP_NOCHECK扩展,叶签名者证书吊销证书检查被跳过。OCSP和CRL检查都是允许的。
Windows Server 2003和Windows XP:不支持这个值。
CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL 0x00000004 只使用缓存的url在构建一个证书链,不会在互联网和内联网搜寻基于URL的对象 注意:这个标志不适用吊销证书检查。缓存设置CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY只使用url吊销证书检查。
CERT_CHAIN_DISABLE_PASS1_QUALITY_FILTERING 0x00000040
CERT_CHAIN_DISABLE_MY_PEER_TRUST 0x00000800 不支持这个标志。证书在“MY”证书存储从不考虑同伴的信任。
CERT_CHAIN_ENABLE_PEER_TRUST 0x00000400 在“TrustedPeople”证书存储的终端实体证书没有执行任何链构建都是可信任的。这个函数不设置CERT_TRUST_IS_PARTIAL_CHAIN或CERT_TRUST_IS_UNTRUSTED_ROOT dwErrorStatus ppChainContext参数的成员。
Windows Server 2003 Windows XP:不支持这个标志。
CERT_CHAIN_OPT_IN_WEAK_SIGNATURE 0x00010000 设置此标志显示调用者希望选择弱签名检查。   这个标志可以在每个操作系统的汇总更新从Windows 7和Windows Server 2008 R2 开始
CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS 0x00000080 默认是只返回最高质量链的道路。设置此标志将返回低质量链。这些返回的cLowerQualityChainContext和rgpLowerQualityChainContext字段链上下文。
CERT_CHAIN_DISABLE_AUTH_ROOT_AUTO_UPDATE 0x00000100 设置这个标志阻止第三方根证书的从Windows更新Web服务器的自动更新
CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT 0x08000000
CERT_CHAIN_TIMESTAMP_TIME 0x00000200 这个标志被设置时,pTime作为时间戳时间确定最终的证书是有效的。当前时间也可以用来确定最终证书仍然有效。所有其他认证机构(CA)和根证书链中使用当前时间而不是pTime检查。
CERT_CHAIN_DISABLE_AIA 0x00002000 设置这个标记显式地关闭 Authority Information Access (AIA)检索。

您还可以设置以下吊销标志,但只有一个标志从这组可以设置一次:

Value Meaning
CERT_CHAIN_REVOCATION_CHECK_END_CERT 0x10000000 吊销证书的检查在最终证书,也仅仅是对最终证书
CERT_CHAIN_REVOCATION_CHECK_CHAIN 0x20000000 吊销证书的检查在所有证书,且在每一个链。
CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT 0x40000000 吊销证书的检查在所有的所有证书链上进行,除了根证书。

END_CERT:终端实体证书/叶证书/SSL证书

解决方案

主要是在函数的dwFlag上处理

总结

参考:

不支持ISRG?在Windows 10/8.1/7中更新根证书列表

Windows下验证https证书

CryptoAPI System Architecture

相关文章
|
2月前
|
缓存 负载均衡 API
深入解析电商支付API的性能瓶颈与解决方案
在电商快速发展的当下,支付API的性能直接影响用户体验与交易成功率。本文深入分析支付API在高并发下的性能瓶颈,并提供包括CDN加速、异步处理、缓存优化、数据库索引、负载均衡等在内的系统性解决方案,助力开发者提升支付效率,保障交易流畅稳定。
67 1
|
2月前
|
SQL Apache Windows
Windows服务器80端口被占用的全面解决方案
在服务管理器中启动apache2服务,即可正常使用80端口。若系统中还安装了其他微软产品如sql等,也可尝试停止其服务进行测试,但请注意,SQL通常不会使用80端口,因此一般不会受到影响。以上就是关于80端口被system占用的详细解决方法,希望对你有所帮助。
|
3月前
|
自然语言处理 安全 API
“跨境电商API解决方案:多语言多货币,全球销售无忧”
跨境电商API解决方案助力企业全球化布局,提供多语言支持(超100种语言)、多货币结算和实时汇率转换,简化跨境交易流程。基于RESTful架构设计,兼容性强,云端部署确保高可用性与稳定性。实际应用涵盖多平台库存同步、智能物流优化等场景,整合主流电商平台与物流服务商。同时,系统符合GDPR等国际合规标准,内置风控机制防范欺诈交易,保障数据安全与业务连续性,为企业提供全方位技术支持。
83 0
|
27天前
|
安全 Linux iOS开发
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
153 0
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
|
6月前
|
安全 Unix Linux
Veritas NetBackup 11 for Linux & Windows - 领先的企业备份和恢复解决方案
Veritas NetBackup 11 for Linux & Windows - 领先的企业备份和恢复解决方案
142 0
Veritas NetBackup 11 for Linux & Windows - 领先的企业备份和恢复解决方案
|
2月前
|
监控 数据安全/隐私保护 Windows
Veeam Data Platform 12.3.2 (Windows) - 数据保护和管理解决方案
Veeam Data Platform 12.3.2 (Windows) - 数据保护和管理解决方案
72 1
|
2月前
|
SQL 安全 BI
Dataphin数据服务API行级权限管控解决方案 ——构建企业级数据安全的精细化管控体系
Dataphin数据服务推出行级权限管控功能,解决传统权限管理中用户权限分散、管控复杂等问题。支持直连与代理双模式访问,实现API与SQL权限统一管理,满足金融、零售、医疗等行业对数据访问的精细化控制需求。通过动态权限决策引擎和自动化继承体系,确保数据安全且提升应用开发效率。
273 0
|
5月前
|
存储 安全 Linux
Nexpose 8.4.1 for Linux & Windows - 领先的漏洞管理解决方案
Nexpose 8.4.1 for Linux & Windows - 领先的漏洞管理解决方案
115 0
Nexpose 8.4.1 for Linux & Windows - 领先的漏洞管理解决方案
|
5月前
|
人工智能 搜索推荐 IDE
突破网页数据集获取难题:Web Unlocker API 助力 AI 训练与微调数据集全方位解决方案
本文介绍了Web Unlocker API、Web-Scraper和SERP API三大工具,助力解决AI训练与微调数据集获取难题。Web Unlocker API通过智能代理和CAPTCHA绕过技术,高效解锁高防护网站数据;Web-Scraper支持动态内容加载,精准抓取复杂网页信息;SERP API专注搜索引擎结果页数据抓取,适用于SEO分析与市场研究。这些工具大幅降低数据获取成本,提供合规保障,特别适合中小企业使用。粉丝专属体验入口提供2刀额度,助您轻松上手!
274 2
|
11月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
607 3