如何将PEM格式的X509证书和私钥转换为GPG格式?

How to convert X509 certificate and private key in PEM format to GPG format?

我有一个 X509 证书(链)和 PEM 格式的私钥。我需要将它们转换为 GPG 格式,以便我可以使用它们进行签名。我该怎么做?

我尝试了 gpgsm,但密钥仍然没有出现在 gpg 密钥列表中。

请指教

是单独的密钥存储:gpg~/.gnupg/pubring.gpggpgsm~/.gnupg/pubring.kbx

所以用 gpgsm 添加的键不能用 gpggpg 不读 ~/.gnupg/pubring.kbx.

要查看您使用 gpgsm 添加的键,请使用 gpgsm --list-keys。要从这些 gpgsm 密钥创建密文,请使用 gpgsm --encrypt。等等。它是一个完全独立于 gpg.

的工具

就导入 X.509 内容供 gpg 使用而言,GnuPG 没有提供执行此操作的方法。 OpenPGP 标准中没有关于它的任何内容,因此没有可互操作的方法。

但是商业 (Symantec) PGP 桌面工具有一些方法可以做到这一点,所以如果你能得到 PGP 桌面的副本,我想你可以用它把你的 X.509 东西导入到 PGP 桌面的密钥存储,然后将其导出为 .gpg/.asc 文件,然后 运行 gpg --import 就可以了。

来自my article

步骤

  1. pfx (p12) 分解为 pem 个可以使用的文件。由于某些原因,GPG 无法处理标准编码。

    openssl pkcs12 -in sectigo.pfx  -nokeys -out gpg-certs.pem
    openssl pkcs12 -in sectigo.pfx -nocerts -out gpg-key.pem
    
  2. 将密钥组合成 GPG 可识别的内容

    openssl pkcs12 -export -in gpg-certs.pem -inkey gpg-key.pem -out gpg-key.p12
    
  3. 导入 GPG

    gpgsm --import gpg-key.p12
    
  4. 此时我们已经导入了p12,我们可以在Kleopatra中看到它,但是我们不能将它用于PGP操作。

    cat gpg-key.pem | PEM2OPENPGP_USAGE_FLAGS=authenticate pem2openpgp "Your Name <your@email.address>" > key.pgp
    
  5. 现在!!!!我们有一个 pgp 密钥,当您将 key.pgp 导入 GPG 时,它绝对会与您的证书具有相同的密钥。

    gpg --import key.pgp