问题标签 [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 回答
83 浏览

java - Java 检查 CRL 颁发证书的 cRLSign KeyUsage 位吗?

我正在使用 Java 实现使用 CRL 进行撤销检查,类似于以下代码(我将代码剪裁得简洁明了)

上面的代码在自定义 SSLSocketFactory 的构造函数中,并且有一个自定义的 TrustManager(由 getTrustManagers() 返回)覆盖 checkServerTrusted() 以执行一些证书检查并在最后执行默认的 checkServerTrusted()。一切正常,除了我需要 CRL 的验证在它由没有设置 cRLsign 密钥使用位的 CA 签名时失败,但它没有。

我知道这是 RFC3280 的要求,在网上某处我读到 Java 实现符合 RFC,我什至看到了 Java 基本代码中的方法来做到这一点,但它似乎并没有发挥作用我运行应用程序。

我使用自定义代码进行了所有吊销检查以实现这一目标,但我认为 Java 实现比我的自定义代码更完整,我更喜欢使用 Java 实现。

有什么解决办法吗?

0 投票
0 回答
817 浏览

c# - Windows Server 2016 中的证书吊销检查失败

命令

certuil.exe - 验证

失败并出现错误 - '找不到对象或属性。Windows server 2016 中的 0x80092004 (-2146885628 CRYPT_E_NOT_FOUND)'。在 2012\2008 中看不到该错误。

任何帮助,将不胜感激。

0 投票
1 回答
1741 浏览

ssl - 在 OpenJDK 11 中启用 SSL 证书吊销检查

Java 11 中是否有一些快速的“声明性”方式,而不是繁琐的手动实现来检查证书是否被吊销?

我尝试使用此答案中的属性: 在 使用此虚拟吊销证书进行身份验证之前检查 Spring-Security 中的 X509 证书吊销状态: https ://revoked.badssl.com 但代码始终接受证书。我做错了什么还是这些属性对于 Java 11 不再实际?如果是这样,我们还有其他选择吗?

下面是我的代码:

0 投票
1 回答
1356 浏览

linux - 有没有办法检查和清理 ASP.NET Core 应用程序的证书吊销列表缓存,该应用程序是 dockerized 并在 Linux 下运行?

我们需要在 ASP.NET Core 2.X 应用程序中实现客户端证书有效性检查,该应用程序是 dockerized 并在 Linux 下运行。特别是,我们对证书的撤销状态感兴趣。这种验证是通过使用X509Chain实现的,并且可以按预期工作。

Dockerfile

但是,我们对我们的应用程序的 CRL 缓存的到期时间有要求。看起来 Linux(我假设它是debian for mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slimimage)默认缓存 CRL - 第一个请求持续约 150 毫秒,并且几乎立即处理以下请求(不幸的是,我找不到可用信息来确认这一观察结果)。

Linux(debian)中 CRL 缓存的默认时间是多少?有可能改变它吗?有没有办法检查缓存的 CRL 列表?

是否可以像在 Windows 中一样清理 CRL 缓存?

certutil -urlcache * delete

Linux 证书 util dirmngr似乎不是mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slimASP.NET Core 2.2 应用程序基础映像的一部分。

0 投票
1 回答
759 浏览

python - Python 密码学:使用额外的撤销证书更新现有 CRL

我正在尝试使用 Python 加密项目向现有 CRL 添加其他证书: https ://cryptography.io/

查看 CRL 构建器的文档,我看不到加载现有 CRL、使用 进行添加add_revoked_certificate(revoked_certificate)然后退出 CRL 的方法。

add_revoked_certificate(revoked_certificate)需要提及的文档:

revoked_certificate – RevokedCertificate 的一个实例。这些可以从现有的 CRL 获得或使用 RevokedCertificateBuilder 创建。

这让我相信没有现成的方式来更新 CRL,但我只是想确保我没有遗漏任何东西。

对于它的价值,我当前的代码如下,我插入了伪代码作为我正在尝试做的事情的注释。

一如既往,感谢您的帮助!

编辑:

我最终添加了第三个参数来接受要撤销的证书列表。

0 投票
1 回答
250 浏览

.net - 如果使用 ChainPolicy RevocationMode Online,X590Certificate.Build 是否使用 OCSP?

如果您有如下代码: OCSP 是否用于“在线”吊销检查?

API文档没有明确说明这一点,说:

“使用在线证书吊销列表 (CRL) 进行吊销检查。”

但没有提供有关如何进行检查的任何细节

这些X509Chain.Buld方法检查属性szOID_AUTHORITY_INFO_ACCESS是否有值 - 我知道这是存储 OCSP URL 的地方,所以这再次表明正在使用 OCSP

Build 然后调用 BuildChain 并调用 CertGeCertificateChain,传递一个撤销标志 unsigned int。

GetCertificateChain 的文档给出了可以传入的可能标志,包括 CERT_CHAIN_REVOCATION_CHECK_OCSP_CERT:

“此标志在链构建期间内部用于在线证书状态协议 (OCSP) 签名者证书,以防止循环撤销检查。在链构建期间,如果 OCSP 响应由独立的 OCSP 签名者签名,那么,除了原始链构建,为 OCSP 签名者证书本身构建了第二个链。在此第二个链构建期间使用此标志来禁止递归独立 OCSP 签名者证书。如果签名者证书包含 szOID_PKIX_OCSP_NOCHECK 扩展,则跳过叶签名者的吊销检查证书。允许 OCSP 和 CRL 检查。

由于存在一个“禁止”OCSP 检查的标志,我认为它确实会发生 - 但再次明确确认这一点会很好

0 投票
1 回答
735 浏览

c# - 在签名时在 pdf 中添加撤销详细信息

我已经使用附加在 pc 中的数字令牌对 pdf 进行了数字签名,使用库 itext sharp 附加相同的内容,当我在 adobe 阅读器中打开它时,它显示无法执行吊销,当我看到详细信息时,它显示发行者证书的吊销之一未检查错误:BER 解码时遇到错误。

我的普通签名 pdf 的路径:https ://www.sendspace.com/file/vqgl53

作为一种解决方案,我认为如果我可以在文档中添加 CRL 信息本身(我的普通签名 pdf),那么我将不会遇到这个问题。所以我添加了这个 ans 中提到的代码:我想用 ITextSharp 签署一个 pdf 文档并返回启用了 ltv pdf 的文件

但我在网上遇到异常:addLtvForChain(null, ocspClient, crlClient, getCrlHashKey(crlBytes));

getCrlHashKey第一行的子方法中:X509Crl crl = new X509Crl(CertificateList.GetInstance(crlBytes));

例外说:

GetInstance 中的未知对象:Org.BouncyCastle.Asn1.DerApplicationSpecific 参数名称:obj

请进一步建议。

0 投票
1 回答
770 浏览

java - 如何检查 Android 的 KeyStore 的证书吊销列表 (CRL)?

我想使用Android的硬件KeyStore功能,所以我使用Pixel3手机获取KeyStore对象的证书链,见这篇文章

.cer例如,查看一个特定文件,CRL 分发点是https://android.googleapis.com/attestation/crl/8F6734C9FA504789.

在浏览器中打开此链接会出现 404 错误。即使调用也会https://android.googleapis.com产生相同的 404 错误。

我尝试使用 Google 的 OAuth2 Playground 进行正确身份验证,但即使来自那里的请求也会返回 404 错误。

另外,在Java中用PKIXParameters类验证证书链时,会抛出CertPathValidationException“无法确定吊销状态”的说法。但是当用 禁用撤销检查时pkix_parameters.setRevocationEnabled(false),链的验证是成功的。

我也不认为这是一个 API 身份验证问题,因为页面返回 404,而不是像在其他端点上那样的“无效项目 ID”。

我的问题主要是我错过了什么,为什么我在尝试获取 CRL 分发点时只得到 404?

0 投票
1 回答
318 浏览

java - 如何使用 DSS 获取 X509 证书的吊销状态?

我正在尝试使用 DSS 框架根据其吊销状态验证 X509 证书,您在哪里找到它?

我正在使用这段代码来验证带有 CRL 和 OCSP 的证书。我想知道是否toValidateToken已被撤销。

CertificateToken类有类似isSignatureValid, isExpired,的方法isValidOn,但没有与撤销相关的方法。

isRevoked()在其他论坛找到了一个方法,但我没有。我确定我已经安装了所有依赖项。

结果,我只需要一个简单的真/假。

0 投票
0 回答
209 浏览

java - 复制在 Go 中创建的 CRL

我在 Go 中创建了一个 CRL(将其解析为 PEM),现在我想在 Java 中重新创建完全相同的 CRL(以获得相同的 PEM)。但是,我不确定如何执行此操作,我发现 Go 和 Java 中的 CRL 类非常不同。

我通过以下方式在 Golang 中创建了 CRL:

我想用Java重现这个。我知道我有空/无的变量(例如 crl 签名)。那是为了我想做的事情。我可以使用 PEM 并读取 Java 中的 CRL,但我无法这样做来创建完全相同的 CRL。

我也想在没有签名的情况下用 Java 创建 CRL(所有参数都相等)。