6

Я импортировал сертификат в Firefox и хочу экспортировать его в формат PKCS12. Единственные варианты, которые я нахожу, это PKCS7, PEM и DIR. а не PKCS12. Я сомневаюсь, что сертификат не имеет закрытого ключа, так есть ли способ проверить это?

РЕДАКТИРОВАТЬ Моя проблема была в браузере Chrome, который я использовал, когда запрашивал сертификат. Кажется, что у него есть проблема с хранением закрытого ключа. Я повторил запрос с Firefox, и все прошло хорошо.

2 ответа2

4

Вы можете просмотреть содержимое сертификата в Firefox
(Tools -> Options -> Advanced -> Encryption -> View Certs -> Yours/Authority/etc -> <cert> -> View -> Details -> Certificate Fields -> Public Key)

Если вы можете экспортировать в PEM, вы можете преобразовать это в PKCS12

# export mycert.pem as PKCS#12 file, mycert.pfx
openssl pkcs12 -export \
  -out mycert.pfx -in mycert.pem \
  -name "My Certificate"

Обновление: примеры использования OpenSSL

Создать самозаверяющий сертификат

  $ openssl req \
  >   -x509 -nodes -days 365 \
  >   -newkey rsa:1024 -keyout mycert.pem -out mycert.pem

Посмотреть его содержимое

  $ openssl x509 -in mycert.pem -noout -text

Посмотреть файл PEM

  $ cat mycert.pem
  -----BEGIN RSA PRIVATE KEY-----
  MIICXAIBAAKBgQDa6JQOLkwoIGhTvcTSYX68Ddaq4hGk/61RSVELaVFJTNQYPB86
  …
  aPj0KoeFJ04/sLcZNZwGcC93rNA66xTICLtGbBXlM1U=
  -----END RSA PRIVATE KEY-----
  -----BEGIN CERTIFICATE-----
  MIICxTCCAi6gAwIBAgIJAOaxxgLFlypwMA0GCSqGSIb3DQEBBQUAMEwxCzAJBgNV
  …
  tz0TMEYxbGIscZbxeJxoK6pe5tOwXtdjStlcITzksdPV5rLp84aeJl4=
  -----END CERTIFICATE-----

Обратите внимание, что хотя PEM-файл может содержать как закрытый ключ, так и сертификат, закрытый ключ не является частью сертификата X.509.

Если в PEM, экспортированном FF, отсутствуют маркеры BEGIN и END вокруг данных, закодированных в Base64, OpenSSL не сможет прочитать файл PEM.

Вот сертификат CA, который я экспортировал из Firefox (* например, в блокноте)

-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
…
HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
-----END CERTIFICATE-----

(многоточие… где данные для краткости опущены)

Я могу просмотреть, что все в порядке, используя openssl x509 -in ff.crt -noout -text (я вырезал и вставил из Windows в Linux, но вы также можете установить openssl в Windows)

3

Это потому, что у вас нет соответствующего закрытого ключа для этого сертификата.

В криптографии PKCS # 12 является форматом связанного ключа, который обычно используется для хранения личного ключа вместе с его сертификатом X.509. Смотрите больше информации о Википедии здесь.

Вы можете экспортировать сертификаты в формате PKCS # 12, только если у вас есть закрытый ключ, который принадлежит ему в вашем браузере. Это должно быть на том же компьютере и в том же браузере, который вы использовали для создания сертификата подписи ключей. См. Статью базы знаний CaCert для более ясного объяснения:

" Ваши ключи содержатся в чем-то, что называется ключом" store ".Вы можете экспортировать открытые / закрытые пары ключей из вашего магазина в файл, и по желанию (но настоятельно рекомендуется!) закрепите их парольной фразой. Обычно это делается, перейдя в раздел "Управление сертификатами" вашего браузера (например, Firefox), а затем выполнив "Резервное копирование" вашего ключа. Это создаст файл с.P12 или.PFX суффикс.

"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .