[总结]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

相关文章
|
20天前
|
API 网络安全 网络架构
【Azure APIM】解答REST API实现"禁用自签名证书的证书链验证"中的backends参数值从那里取值的问题?
本文介绍APIM服务调用后端API时因自签名证书导致500错误的解决方案。通过REST API禁用证书链验证,关键在于获取正确的backendId(即APIM中配置的Backend名称),并调用PATCH接口设置validateCertificateChain为false,从而解决SSL/TLS信任问题。
|
3月前
|
缓存 负载均衡 API
深入解析电商支付API的性能瓶颈与解决方案
在电商快速发展的当下,支付API的性能直接影响用户体验与交易成功率。本文深入分析支付API在高并发下的性能瓶颈,并提供包括CDN加速、异步处理、缓存优化、数据库索引、负载均衡等在内的系统性解决方案,助力开发者提升支付效率,保障交易流畅稳定。
99 1
|
3月前
|
边缘计算 监控 Java
跨境电商 API 对接避坑指南:亚马逊 SP-API 超时问题的 5 种解决方案(附重试代码模板)
在对接亚马逊 SP-API 时,超时问题常导致订单延迟、库存失败,影响运营。本文总结某 3C 品牌实战经验,详解超时的 3 大根源与 5 大解决方案,涵盖动态超时、重试机制、请求拆分、并发控制与边缘加速,并附可复用 Python 代码,助你将超时率从 20% 降至 1% 以下。
|
13天前
|
Ubuntu API C++
C++标准库、Windows API及Ubuntu API的综合应用
总之,C++标准库、Windows API和Ubuntu API的综合应用是一项挑战性较大的任务,需要开发者具备跨平台编程的深入知识和丰富经验。通过合理的架构设计和有效的工具选择,可以在不同的操作系统平台上高效地开发和部署应用程序。
57 11
|
8天前
|
缓存 数据可视化 定位技术
快递鸟快递API技术指南:获取物流轨迹信息与轨迹地图的解决方案
在当今电商竞争激烈的环境中,物流体验已成为提升用户满意度的关键因素。研究表明,超过 75% 的消费者会因物流信息不透明而放弃下单。
232 1
|
3月前
|
SQL Apache Windows
Windows服务器80端口被占用的全面解决方案
在服务管理器中启动apache2服务,即可正常使用80端口。若系统中还安装了其他微软产品如sql等,也可尝试停止其服务进行测试,但请注意,SQL通常不会使用80端口,因此一般不会受到影响。以上就是关于80端口被system占用的详细解决方法,希望对你有所帮助。
|
4月前
|
自然语言处理 安全 API
“跨境电商API解决方案:多语言多货币,全球销售无忧”
跨境电商API解决方案助力企业全球化布局,提供多语言支持(超100种语言)、多货币结算和实时汇率转换,简化跨境交易流程。基于RESTful架构设计,兼容性强,云端部署确保高可用性与稳定性。实际应用涵盖多平台库存同步、智能物流优化等场景,整合主流电商平台与物流服务商。同时,系统符合GDPR等国际合规标准,内置风控机制防范欺诈交易,保障数据安全与业务连续性,为企业提供全方位技术支持。
112 0
|
1月前
|
安全 Linux iOS开发
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
261 0
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
|
21天前
|
缓存 人工智能 API
API接口调用中的网络异常及解决方案
淘宝API是淘宝开放平台提供的接口集合,支持商品、交易、用户、营销等数据交互。开发者需注册获取App Key,通过签名认证调用API,结合沙箱测试、OAuth授权与安全策略,实现订单管理、数据监控等应用,提升电商自动化与数据分析能力。
|
2月前
|
人工智能 JSON 前端开发
Mock 在 API 研发中的痛点、价值与进化及Apipost解决方案最佳实践
在 API 开发中,Mock 技术能有效解决后端接口未就绪带来的开发阻碍,保障前端独立高效开发。本文通过电商平台支付接口的实例,分析了常见 Mock 方案的局限性,并深入介绍了 Apipost 提供的灵活 Mock 能力:从固定值返回,到使用内置函数生成动态数据,再到自定义函数处理复杂逻辑,最后实现根据请求参数返回不同响应。这些能力不仅提升了开发效率,也增强了测试的全面性,为前后端协作提供了更高效的解决方案。
138 3

热门文章

最新文章