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

时间:2017-01-27 22:45:25

标签: certificate x509certificate x509 gnupg pem

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

我尝试了gpgsm,但键仍未出现在gpg键列表中。

请建议。

2 个答案:

答案 0 :(得分:1)

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

因此gpgsm添加的密钥不适用于gpg; gpg未读取~/.gnupg/pubring.kbx

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

至于导入X.509的内容供gpg使用,GnuPG没有提供这样做的方法。 OpenPGP标准中没有关于它的内容,因此没有可互操作的方法。

但商业(赛门铁克)PGP桌面工具有一些方法可以做到这一点,所以如果你能得到PGP桌面的副本,我想你可以用它来将你的X.509内容导入PGP桌面的密钥存储,然后将其导出为.gpg / .asc文件,然后在其上运行gpg --import

答案 1 :(得分:1)

来自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