Ssl 如何在证书吊销列表中插入条目

Ssl 如何在证书吊销列表中插入条目,ssl,openssl,certificate,certificate-revocation,Ssl,Openssl,Certificate,Certificate Revocation,我有一个现有的CRL,我想通过SSLCARevocationPath指令与我的apache实例一起使用。为了测试它并确保它正常工作,我想在CRL中添加一个条目,用于我自己的PIV证书信息。此条目如下所示: Serial Number: E2C72718B5E0EXXXXXXXXXXXXXXXXXXXXXXXX Revocation Date: Nov 28 13:37:30 2018 GMT CRL entry extensions: X5

我有一个现有的CRL,我想通过SSLCARevocationPath指令与我的apache实例一起使用。为了测试它并确保它正常工作,我想在CRL中添加一个条目,用于我自己的PIV证书信息。此条目如下所示:

Serial Number: E2C72718B5E0EXXXXXXXXXXXXXXXXXXXXXXXX
        Revocation Date: Nov 28 13:37:30 2018 GMT
        CRL entry extensions:
            X509v3 CRL Reason Code:
                Affiliation Changed

我拥有的CRL文件本质上是这样一个条目列表。然而,我似乎找不到一种方法,使用类似openssl的东西将我的条目插入到文件中,并且无法在Notepad++中直接编辑该文件。有没有一种方法不需要生成新的CRL就可以做到这一点?

CRL和证书一样,都经过签名以防止伪造或篡改,因此您不能“编辑”它,您必须生成一个新的CRL,但请参见下文

OpenSSL命令行只能使用其自身廉价且令人愉快的DIY CA函数的“数据库”中的条目生成CRL,即通常名为
index.txt
的文本文件。由于您想要的证书(以及CRL中的任何其他证书)实际上不是由您的OpenSSL DIY CA颁发的,因此要使用此证书,您必须“重建”如果您这样做的话本应创建的
index.txt
。对于一个证书,假设在配置文件中设置了1.0.2以上和合适的设置,您可以使用
opensslca-valid$certfile
。对于一个有数百个“丢失”证书的案件,要获得更复杂的解决方案,请参阅(披露:部分是我的)

或者,您可以编写一些代码来调用OpenSSL库,用所需的数据构建一个
X509\u CRL
对象,并对其进行签名。这甚至会成为我们讨论的话题

但是,要使CRL有效,它必须由颁发被吊销证书的同一CA签署,或者由该CA签署的特殊用途从属证书本身签署。我假设您的PIV证书是由某个Fed PKI CA颁发的,并且您不拥有该CA的私钥。(如果你是这样的话,这是一个相当严重的安全漏洞,虽然不是在斯诺登或OMB的级别上——可能是关于曼宁。或者在私营部门Ashley Madison。)如果你可以改变Apache的信任库,你可以使用与真实CA相同的名称创建自己的DIY CA,然后让Apache信任这个假根,但它会链接(真实的)由真实CA颁发给假根用户的证书不会进行验证

因此,简而言之,您应该创建自己的测试数据。创建一个DIY CA,为自己颁发一个证书(或多个证书——你可以在网上随意向自己收取费用,而且不会花费任何费用!),标记证书或其中一些证书已被撤销,并生成CRL,然后使用这些证书进行测试