问题标签 [certificate-revocation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
41 浏览

firefox - 更改服务器中的自签名证书时 Firefox 的行为

我有一个发布自签名证书的网络服务器(在小型嵌入式设备上运行)。Firefox 连接到服务器并且页面加载正常。我们有一个 Web 客户端,它不断地从服务器请求数据。当服务器证书更改保持浏览器与服务器的连接完好无损时,Firefox 无法识别新证书并使用旧证书与服务器通信。这会导致 Firefox 重置连接,并且 Web 客户端向服务器发出进一步的请求,并且正在进行的连接也失败。这会导致设备在 web 服务器加载多个请求时阻塞。当我按下刷新按钮时,事情就到位了,Firefox 获取了新证书。如何在 Firefox 中启用异常处理程序,或者是否有任何选项可以检测服务器证书的更改,以便浏览器可以开始使用新的服务器证书进行通信。使用 Chrome 或 IE 时我看不到问题,IE 提示支持提及证书已更改。

0 投票
1 回答
256 浏览

java - 如何获取证书吊销的日期并将其与 Java 中的签名时间进行比较

我有一个 X509Certificate。而且我需要验证签名时间的日期是否小于撤销时间。这就是我的意思。想象一下,有人窃取了签名者的私钥并签署了一些假文件,但 CA 准时撤销了它。因此,在吊销时间之后签署的证书和所有文件不再有效。为了遵循算法,我需要执行以下操作:

  1. 从 pkcs7 文件中获取唱歌时间(我已经从这个文件中获得了证书)
  2. 在证书中找到 CRL URL,下载
  3. 如果此 CRL,请检查证书的 id 是否存在
  4. 如果是,获取撤销时间
  5. 检查签名时间是否小于撤销

它有“现成的”代码吗?因为从证书中获取 CRL 是一场噩梦。我使用的图书馆是 Bouncy Castle。

0 投票
0 回答
353 浏览

java - SSH 连接期间的 CRL 检查

我有一个 Android 应用程序,我在其中使用 HttpURLConnection 与我的服务器进行 SSL 连接。服务器证书包含具有有效 URI 的 CRL 分发点。此证书已被吊销,并且 URI 的 CRL 包含此信息。但是在握手期间我没有收到任何异常,我可以从我的服务器接收任何信息。我使用安卓 6 和 7。

我发现一些帖子,其中开发人员写道 Android 默认禁用撤销检查。另外,我看到了一些将 PREFER_CRLS 选项设置为 PKIXRevocationChecker 并将其设置为 TrustManagerFactory 的示例,但似乎它仅适用于 Java SE,当我在我的应用程序中尝试此代码时,我收到初始化 TrustManagerFactory 的异常:

network_security_config.xml 文件是正确的:

这是我的代码:

因此,我尝试了解如何为我的应用启用 CRL 检查。可以通过shell为根设备完成吗?有什么方法可以覆盖您自己的密钥库的参数吗?或者有什么方法可以为系统android密钥库启用它?

另外,我在这里发现了这个错误:https ://issuetracker.google.com/issues/36993981 ,但我没有看到这个问题的任何更新。有人知道适用于 Android 应用程序开发人员的任何解决方案吗?

0 投票
0 回答
88 浏览

android - 证书和密钥滥用

几年前我犯了一个错误,将 OpenSSL 证书密钥(.pem 和 .pk8)上传到博客文章中。该密钥用于使用 SignApk.jar 工具对 Android apk 进行签名。有人拿走了它并使用密钥签署了恶意软件应用程序,但糟糕的是我在创建该证书时输入了我的电子邮件地址。这引发了一些问题,因为人们指责我是这些应用程序的创建者。

问题是,我怎样才能恢复这种情况?有些人建议撤销密钥,但我不太明白。据网上了解,撤销需要上传到CA,什么CA?

谢谢你。

0 投票
0 回答
2055 浏览

c - 撤销 openssl 中的现有证书

我已经创建了 openssl 证书,所以我有 .crt 和 .key 文件。如果我想在现有证书吊销列表中添加这些证书,那么我们该怎么做呢?

我试过下面的代码。

我已经写了上面的代码,我得到了序列号,但没有被添加到“root_mod.crl”文件中的撤销列表中。

你能提出任何建议吗?

0 投票
1 回答
764 浏览

macos - OpenSSL:针对在 OS X 10.11.6 El Capitan 上返回“无法获取颁发者证书”的 CRL 验证证书

我正在使用以下脚本在 OS X 10.11.6 El Capitan 上针对 crl 验证证书。

它在 ubuntu 上运行良好,但在尝试在 OS X 10.11.6 El Capitan 上运行时抛出以下错误。

将 wikipedia.org 与 s_client 连接返回:

0 投票
1 回答
1275 浏览

java - 使用 CertPathValidator 进行签名验证,包括 CRL 撤销

在验证签名的上下文中,我想在文档签名时验证签名证书的有效性。我意识到如果我指定过去的日期,则不使用 CRL 吊销检查方法,而如果我使用当前时间或 null,则吊销检查工作正常。我正在使用下一个代码

我已经启用了系统属性 EnabledCRLDP。此外,OCSP 不是一个通用的解决方案,因为它不起作用的是一些证书。

在过去的时间验证中是否有某些理由不使用 CRL 撤销方法?

在这种情况下,有什么方法可以强制使用 CRL?

0 投票
0 回答
308 浏览

c# - Win32 API 证书 CRL-ONLY 吊销检查

我需要执行证书吊销检查。必须允许用户选择仅 OCSP CRL或两者。该项目使用 C#,但 .NET 不提供开箱即用的独立 OCSP/CRL 检查。

默认情况下,Windows 首先检查 OCSP,如果 OCSP 服务器不可访问,则仅检查 CRL。详情:

这不是必须执行的,也不能改变要求。

Win32 API 显然允许使用 OCSP 执行证书吊销检查:

对于仅限CLR 的检查,我没有看到任何类似的选项。

在我看来,唯一的方法是使用

问题:

有没有其他更简单的方法来使用 Win32执行CRL检查?

笔记:

例如,像 Bouncy Castle 这样的第三方库并没有做 Windows 为撤销检查所做的一切,我不想重新发明轮子。

这就是我坚持使用 Win32 方法的原因,因为它们已经处理了很多事情:增量 CRL、装订 OCSP、缓存、超时、重试、可配置性等。

0 投票
1 回答
258 浏览

c# - 了解证书吊销列表

我试图弄清楚证书重定位列表如何运作以及它们如何更新。

所以说我的服务器 xyz.com 有一个证书,其 CRL 分发点配置为 myissuer.com/thelist.crl

现在我在连接到 xyz.com 时使用 wireshark 监控了我的网络上的通信,我没有看到任何对 myissuer.com 的调用来获取 CRL。

所以我有两个问题:

  1. 对 CRL 分发点的调用实际发生的时间和频率是多少?

  2. 如果我手动下载并安装此 CRL 文件,我的客户端是否仍会尝试连接到配置的 CRL 分发点?

0 投票
2 回答
2511 浏览

java - 使用 BouncyCastle 接受过期的 CRL

我正在使用充气城堡离线验证 X509 证书,并且遇到了旧 CRL 的问题。我还没有发现接受过期的 CRL 的可能性,在我看来,如果证书被吊销,它应该在 CRL 到期后保持吊销状态。此外,如果 CRL 为空,我只想接受这一点,此时我无法获得更新的 CRL。

只是为了澄清,这将是用例:

  1. 2015年创建证书,有效期2015-2020
  2. 在 2017 年用 CRL 吊销证书,密钥被盗,只创建了 1 年的 CRL,因为我犯了一个错误或计划滚动并且永远不会解决它
  3. 检查2019年的证书,CRL过期了,bouncy castle再次接受被吊销的证书——这显然不是我想要的

目前我将撤销检查设置为 false 并自己执行检查。我在任何地方都没有在网上找到任何关于此的内容。

这是我的代码:

确切的例外是: