我有一个证书文件(扩展名 .cer),其内容如下所示。
-----BEGIN CERTIFICATE-----
lots of data here
-----END CERTIFICATE-----
这是我们的签名证书。我将其与第三方共享,以便他们可以将其导入 gpg 公钥环。他们使用以下命令将其导入
gpg --import signing_cert.cer
但它给出了这个错误。
gpg: please see http://www.gnupg.org/faq.html for more information
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
看起来 Windows 和 gpg 使用的证书格式可能不同。有没有办法将我的签名证书导入 gpg 公钥环。任何帮助都将不胜感激。
答案1
这看起来不像是 OpenPGP/GPG 密钥。
-----BEGIN CERTIFICATE-----
<...alphabet soup...>
-----END CERTIFICATE-----
...是 PEM 编码的 X.509 证书的标准框架,与 OpenPGP/GPG 证书不兼容。它们是两个不同的证书系统。您可以使用以下方式以人性化的形式查看 X.509 证书的内容:
openssl x509 -in <filename> -noout -text
ASCII 装甲的 OpenPGP/GPG 公钥将以如下形式开始:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG/MacGPG2 v2.0.14 (Darwin)
版本:行指示用于创建或导出密钥的 OpenPGP 兼容软件的名称和版本。
答案2
来自我的文章。
https://www.pengdows.com/2020/06/27/convert-ax-509-pki-certificate-to-gpg/
脚步
将 pfx (p12) 分解为可以使用的 pem 文件。由于某种原因,GPG 无法处理标准编码。
openssl pkcs12 -in sectigo.pfx -nokeys -out gpg-certs.pem
openssl pkcs12 -in sectigo.pfx -nocerts -out gpg-key.pem
将密钥组合成 GPG 可以识别的内容
openssl pkcs12 -export -in gpg-certs.pem -inkey gpg-key.pem -out gpg-key.p12
导入到 GPG
gpgsm --import gpg-key.p12
此时我们已经导入了 p12,我们可以在 Kleopatra 中看到它,但我们不能将它用于 PGP 操作。
cat gpg-key.pem | PEM2OPENPGP_USAGE_FLAGS=authenticate pem2openpgp "Your Name <[email protected]>" > key.pgp
现在!!!我们有一个 pgp 密钥,并且您将 key.pgp 导入 gpg,它绝对会具有与您的证书相同的密钥。
gpg --import key.pgp