У меня есть файл сертификата (с расширением .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. Любая помощь приветствуется.
Это не похоже на ключ OpenPGP / GPG.
-----BEGIN CERTIFICATE-----
<...alphabet soup...>
-----END CERTIFICATE-----
... это стандартный фрейм для сертификата X.509 в кодировке PEM, который несовместим с сертификатами OpenPGP / GPG . Это две разные системы сертификатов. Вы можете просмотреть содержимое сертификата X.509 в удобочитаемой форме с помощью:
openssl x509 -in <filename> -noout -text
Открытый ключ OpenPGP / GPG, защищенный ASCII, будет начинаться следующим образом:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG/MacGPG2 v2.0.14 (Darwin)
Строка Version: указывает имя и версию Программное обеспечение, совместимое с OpenPGP, которое использовалось для создания или экспорта ключа.
из моей статьи.
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 <your@email.address>" > key.pgp
Сейчас!!!! у нас есть ключ pgp и вы импортируете key.pgp в gpg и у него будет абсолютно такой же ключ запросите ваш сертификат.
gpg --import key.pgp