- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
#常规 OCSP (RFC 6960)我编写了一个 OCSP 响应程序,其中响应基于 RFC 6960其中指出:
If nextUpdate is not set, the responder is indicating that newerrevocation information is available all the time.
所以我没有设置 nextUpdate,只是像这里一样使用了 BouncyCaSTLe BasicOCSPRespBuilder
(它默认设置了 thisUpdate,在 Wireshark Capture 中也可以看到):
basicOCSPRespBuilder.addResponse(certID, responseList.get(certID));
但是这些响应被 IIS 中的证书验证器拒绝了。在尝试 certutil 时,响应状态始终为“已过期”。
这是使用“certutil -url”命令验证的。
#轻量级 OCSP(RFC 5019)一些谷歌搜索显示微软支持轻量级 OCSP,根据 RFC 5019其中指出:
Clients MUST check for the existence of the nextUpdate field and MUSTensure the current time, expressed in GMT time as described inSection 2.2.4, falls between the thisUpdate and nextUpdate times. Ifthe nextUpdate field is absent, the client MUST reject the response.
所以我修改了实现以包含 nextUpdate 日期( future 几分钟),如下所示:
basicOCSPRespBuilder.addResponse(certID, responseList.get(certID), getNextUpdateDate(), null);
这让我摆脱了“已过期”状态问题,但现在的问题是,当它被部署到 Web 服务器并且我尝试执行“certutil -url”检查时,它返回“已验证”的 WebProxy 链接证书,但如果我直接提供服务器的 URL,它会显示“确定”。响应结构在两种情况下都保持不变,因为它是相同的响应者(使用 Wireshark Capture 验证,如果您愿意,我也可以附加它)。
#issuerKeyHash 字段这里有趣的事实是,在通过 WebProxy 和直接 URL 的情况下,发送到服务器的 OCSP 请求是不同的。区别在于 OCSP 请求在将请求发送到直接链接时不包括 issuerKeyHash
。
发送到返回“已验证”的 Webproxy 的 OCSP 请求的 Wireshark 捕获:-
发送到返回状态“OK”的直接链接的 OCSP 请求的 Wireshark 捕获:-
问题是请求为什么在一个实例中包含 issuerKeyHash 而在另一个实例中不包含。此外,即使来自服务器的 OCSP 响应相似(由 Wireshark Caputres 确认),为什么两个查询的状态不相同。
对于“URL 检索工具”或“certutil -verify”在这方面的任何有见地的文档/链接,我也将不胜感激。
我还可以根据要求包含 Wireshark 捕获。
我没有将 Java 和 BouncycaSTLe 作为标记包含在内,因为 OCSP 响应被 Java、openssl 等接受,没有任何问题(根据 RFC 6960,有或没有 nextUpdate)。这个问题是为了了解 Microsoft certutil 和此处的 OCSP 检查发生了什么。
#更新 #1--- 开始更新 #1 ---
如@Crypt32 所建议;我可以验证在 URL 字段中使用 URL 时,由于未知原因未构建完整的证书路径,因此缺少 IssuerKeyHash
。
假设响应总是包含 IssuerKeyHash
,这可能导致“OK”而不是“Verified”状态。为了确认这一点,我修改了响应以匹配请求,并且如果它未在请求中交付但状态保持“正常”并且没有更改为“已验证”,则不会发送 IssuerKeyHash
。
我们的想法是正确理解 Microsoft 应用程序如何处理 OCSP 响应以及如何正确实现 Responder,以便 Microsoft 应用程序不会完全失败。
研究正在进行中,任何意见和建议表示赞赏!!
--- 结束更新 #1 ---
最佳答案
Microsoft 使用轻量级 OCSP,因此需要 thisUpdate
和 nextUpdate
作为 RFC 5019 中引用的强制性要求.
关于 certutil
的查询现已得到澄清,感谢 @Crypt32。
在 certutil
的“下载 URL” 框中使用自定义 URL 时,不会生成完整的证书链,因此导致没有 的 OCSP 请求>IssuerKeyHash
.
标准 CryptoAPI 客户端从不发送带有空 IssuerKeyHash
的 OCSP 请求,这只是特殊的 certutil
行为,可能会被忽略,因为它也往往会在 Windows OCSP 服务器上失败(我也通过 Microsoft CA 进行了验证)
关于windows - Microsoft OCSP 检查(OCSP 与轻量级 OCSP)和 "certutil -url"令人困惑的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48823807/
我正在尝试运行 certutil -repairstore 并不断收到智能卡提示。这是 AWS 上的虚拟机,不能选择智能卡。任何关于如何绕过智能卡并完成修复的想法都值得赞赏 最佳答案 其他答案之一涉及
有谁知道我如何静默安装以下内容? C:\> certutil -importpfx -user -f -p [Password] "O:\Certificates\test2.pfx" 我尝试使用 -
我已按照 https://www.elastic.co/guide/en/elastic-stack-get-started/7.4/get-started-docker.html#get-start
尝试执行 certutil -backupKey 时访问被拒绝。我已经拥有域管理员和对 CA 证书的访问权限(读取、颁发/管理证书、管理 CA、请求证书)。我错过了什么?我需要用私钥导出备份。 > C
我正在尝试获取在给定日期范围内有效的证书:- certutil –view –restrict "NotAfter=July 20,2013 08:00AM" –out "RequestID,Requ
我正在制作一个小型实用程序,它将在具有自定义 CA 的机器上加载所有 Firefox 配置文件。我已经成功地将 certutil 二进制文件用作 NSS 工具的一部分。 但是,我想知道如何使 cert
我想保存结果 CertUtil -hashfile "path_to_file" MD5 添加到变量并删除命令行命令中散列的空格(更具体地说,我想在 VS 2015 C++ 的后处理命令行中使用它)。
我想使用 cmd 导入 pfx。我正在为此使用 certutils。但是我收到一个提示,要求信任该证书。我想自动化导入所以我想跳过警告提示。我怎样才能做到这一点? 我正在使用命令certutil -f
我在 Raspberry PI 上有一个 Debian GNU buld。我正在尝试为网站安装证书。大多数论坛都在谈论需要 CertUtil。但该命令未被识别。谷歌没有发现类似的问题。 最佳答案 ap
我正在尝试在现有证书上设置 KeySpec 标志以用于 SQL Server 加密角色。当前 KeySpec 为 0,我需要它为 1。 执行此操作的方法是首先将证书、其私钥和 key 用法导出到一个
这个问题在这里已经有了答案: How can I output a batch file to one line? (1 个回答) 关闭 4 年前。 我的要求是创建一个具有以下格式的输出文件:Fil
我正在寻找计算大文件 (3GB) 哈希值的有效方法,并意识到使用参数 -hashfile 调用 Windows certutil 执行哈希计算比通过 执行哈希计算快 4 倍(16 秒) code>SH
我下载了一个经过验证(非自签名)的 S/MIME 证书,其中包含存储在 cert8.db 中的 iceweasel(firefox) 然后我用: certutil -L -d 为了列出证书,然后我使
#常规 OCSP (RFC 6960)我编写了一个 OCSP 响应程序,其中响应基于 RFC 6960其中指出: If nextUpdate is not set, the responder is
我是一名优秀的程序员,十分优秀!