我有一个PEM格式的X509证书(链)和私钥。我需要将它们转换为GPG格式,以便我可以使用它们进行签名。我怎么能这样做?
我尝试了gpgsm,但键仍未出现在gpg键列表中。
请建议。
答案 0 :(得分:1)
这是单独的密钥存储:gpg
有~/.gnupg/pubring.gpg
,gpgsm
有~/.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)
将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 <your@email.address>" > key.pgp
现在!!!我们有一个pgp
密钥,当您将key.pgp
导入GPG时,它将绝对具有与您的证书相同的密钥。
gpg --import key.pgp