如何仅使用公钥使用 OpenSSL 创建 X.509 证书?
在这种情况下,我只有待认证的公钥(PEM 格式),我需要从中创建 X.509 证书。此给定公钥应位于X.509 证书中。待认证公钥的SubjectPublicKeyInfo
私钥在此情况下不可用!
但是,当然,用于签署证书的颁发者(CA) 密钥是可用的,包括私钥。我知道我需要私钥来签署证书 😏
现在,我明白了待认证的公钥通常包装在 CSR 中。并且 CSR 通常由待认证公钥的私钥签名。但是,如前所述,我这里没有CSR,只有“普通”待认证公钥。从技术上讲,这根本不是问题。但是 OpenSSL 能以这种方式创建 X.509 证书吗?
我发现最接近的是:
openssl x509 -new -key ca_key.pem -force_pubkey tbs_pubkey.pem -subj "/CN=Test"
不幸的是,上述命令生成了一个看起来像“自签名”的证书,其中包含来自的公钥,tbs_pubkey.pem
并由来自的私钥签名ca_key.pem
,因此生成的“自签名”证书的签名实际上是无效的……☹️