如果您没有证书,如何吊销openssl证书

我做了由本地机器上创build的CA签名的openssl证书。

这个证书被删除了,我没有了。

使用相同的commonName创build另一个证书是不可能的,因为openssl不允许它,并且会产生错误:

failed to update database TXT_DB error number 2 

我怎样才能撤销证书来创build具有相同的commonName的另一个证书?

(基于Nilesh的回答 )在默认configuration下,openssl会将所有签名证书的副本保存在/etc/ssl/newcerts ,并由其索引号命名。 所以grep /etc/ssl/index.txt获取要撤销的密钥的序列号,例如1013,然后执行以下命令:

 openssl ca -revoke /etc/ssl/newcerts/1013.pem #replacing the serial number 

在Nilesh的答案中提到的-keyfile-cert只有在与openssl.cnf设置-cert时才需要。


或者,您也可以更改/etc/ssl/index.txt.attr以包含该行

 unique_subject = no 

允许具有相同通用名称的多个证书。 如果您已经发布了原始证书,那么即使您不运行OSCP服务器或提供CRL,撤销旧证书也是更好的解决scheme。

我还没有尝试过,但看起来像你需要这样的东西。

openssl ca -revoke bad_crt_file -keyfile ca_key -cert ca_crt

openssl自动将你的证书副本保存在newcerts目录中。 您可能想要检查它以检索您的证书。 不幸的是,你需要一个证书来吊销它。 有关详细信息,请参阅以下内容: http : //www.mad-hacking.net/documentation/linux/security/ssl-tls/revoking-certificate.xml