使用 OpenSSL CA 生成重复证书

使用 OpenSSL CA 生成重复证书

在工作中,我们的许多内部服务器都有我们自己生成的 SSL 证书openssl(通过一些简单的脚本)。生成工作正常,但后续处理需要改进,因此我们丢失了服务器的 SSL 证书的所有非加密副本。结果是我们必须花一些时间来制作新的证书并部署它,但这导致了我的问题。

当我尝试创建新的 SSL 证书时internal.server.company,openssl 在该过程结束时失败,并显示

failed to update database
TXT_DB error number 2

因为数据库中已经存在该主机的证书。

如果旧证书已过期,我相信openssl ca -updatedb会将其从数据库中删除,但事实并非如此。

我可以通过在编辑器中打开(相关的)index.txt,搜索internal.server.company并删除找到的行来解决这个问题 - 但这看起来像是一个黑客。有没有一种好方法可以让 openssl 接受我想为我认为已经拥有证书的名称创建一个新证书?

答案1

在与数据库(文件index.txt)相同的文件夹中创建一个文件index.txt.attr并添加以下内容:

unique_subject = no

如果您不确定数据库文件所在的位置,请检查openssl.cnf您正在使用的文件,如下所示:

[ CA_default ]

dir             = ./demoCA              # Where everything is kept
certs           = $dir/certs            # Where the issued certs are kept
crl_dir         = $dir/crl              # Where the issued crl are kept
database        = $dir/index.txt

在上面的示例中,数据库位于index.txt并且驻留在./demoCA.因此,您需要将新index.txt.attr文件放入./demoCA.

如果数据库文件名只是index您需要命名新文件index.attr

相关内容