如何将CRL地址添加到自签名CA证书?

4
这是一个扩展问题:如何在Windows上创建自签名代码签名证书。如果我已经创建了CA证书,并创建了一组SPC证书,那么我该如何创建吊销列表并进行分发呢?(注:我对CRL的工作原理、它们是如何分发等一无所知)。如果我要猜测它的工作原理,我会希望CA证书定义了一些HTTP地址,可从这些地址下载CRLs,在查询证书链时Windows会首先联系该地址,并在当前CRL过期时每次都联系该地址...然后我只需要创建一个已签名的Web地址来分发证书序列号就行了吗?
编辑:自我回答。对于其他有兴趣的人,Bouncy Castle是提供大量PKI密码API的Java+C#库,包括证书生成。他们的示例代码(在他们的下载中)演示了如何生成一组链接的CA、中间和“个人”证书。它没有显示如何正确地分配基于HTTP的CRL,您可以使用以下代码来实现:
GeneralName gn = new GeneralName(new DerIA5String("http://localhost/revocationlist.crl"), 6);


GeneralNames gns = new GeneralNames(gn);
DistributionPointName dpn = new DistributionPointName(gns);
DistributionPoint distp = new DistributionPoint(dpn, null, null);

DerSequence seq = new DerSequence(distp);

v3CertGen.AddExtension(X509Extensions.CrlDistributionPoints, false, seq);
2个回答

3
自加密货币147版本起,提供的代码已更改为:
GeneralName gn = new GeneralName(GeneralName.uniformResourceIdentifier, new DERIA5String(crlUrl));
GeneralNames gns = new GeneralNames(gn);
DistributionPointName dpn = new DistributionPointName(gns);
DistributionPoint distp = new DistributionPoint(dpn, null, null);
DERSequence seq = new DERSequence(distp);
certGen.addExtension(Extension.cRLDistributionPoints, false, seq);

1
假设您拥有一个CA证书和一些由该CA证书签名的证书集。然后,您可以创建一个CRL,其中可能包含以前使用CA证书签名的已吊销证书的ID。确实,您可以通过相应的证书扩展(CRLDistributionPoint)将CRL的URL添加到CA证书本身中。
由于您没有指定用于生成证书的工具或库,因此我无法说如何添加扩展。
附注:我建议您在尝试使用技术之前先了解技术。特别是在实施安全性方面。否则,您将会陷入比Comodo更糟糕的境地,其子CA最近为谷歌、雅虎等发行了伪造证书。

嗨,尤金,谢谢!我目前正在使用Visual Studio / Platform SDK中包含的makecert工具。完全同意学习所有这些内容-这是我目前的目标,了解如何将它们联系起来以及它们可以实现什么。我已经阅读了有关Comodo惊人的所有信息,我无法相信他们自己还没有被吊销! - Adam
@Adam Comodo是一个根CA,他们不能被吊销。是他们的一位客户发布了欺诈证书。关于阅读的书籍 - 我强烈推荐两本书:http://www.eldos.com/forum/read.php?FID=7&TID=1842 我已经阅读过它们,并且可以作为基础强烈推荐它们。 - Eugene Mayevski 'Callback
@Adam 关于 makecert 工具 - 从描述中看不出它们允许您指定 CRLDistributionPoint 扩展。因此,您可能需要编写一些代码来生成并添加所需的扩展。您可以使用 OpenSSL 或者我们 SecureBlackbox 产品的 PKIBlackbox 包 (http://www.eldos.com/sbb/desc-pki.php) 来完成这个任务。 - Eugene Mayevski 'Callback
谢谢 Eugene。我基于 Bouncy Castle 库编写了一个 C# 工具,用于生成我所需的所有证书。 我一定会看一下你的阅读建议。谢谢。 - Adam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接