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