我有自己的 CA 来自签名 SSL 证书,但我丢失了根证书。我有几个依赖证书,列出了我的根证书的主题信息。我有 CA 的私钥和解锁它的密码。考虑到公钥加密的工作原理,似乎应该可以从密钥重新创建我的根证书,但我的 google-foo 和 openssl 的手册页让我失望了。
答案1
如果您将私钥存储为 PEM 文件,则会得到如下文件:
-----BEGIN RSA PRIVATE KEY-----
base64 encoded data
-----END RSA PRIVATE KEY-----
该文件实际上包含公钥和私钥,可以通过运行以下命令提取公钥
openssl pkey -pubout -in key.pem
要基于此密钥创建新的 CA,只需按照通常的指示。唯一的区别是您不需要创建新密钥,而是使用现有密钥。
创建新 CA 时,请确保使用的信息与原始证书中的信息完全相同。它们必须与已生成的证书中的颁发者信息相匹配。如果不匹配,则这个新 CA 甚至不会被视为叶证书的可能颁发者。但是一旦这些信息匹配,验证就会成功,因为仍然使用相同的密钥来签名以使用该证书。
答案2
如果您无法在某处找到原始根证书的备份,那么 Steffen 的答案会更好。但是,您可能在应用程序或信任存储等需要将其导入以用于信任目的的地方放有它的副本。您是否曾在类似的地方导入过 CA 的证书?