В чем разница между файлами cer, pvk и pfx?

204

В чем разница между файлами cer, pvk и pfx? Кроме того, какие файлы я храню и которые я должен передать своим контрагентам?

Джонатан Аллен
источник
Также [1] , [2] , [3]
Пейсер

Ответы:

143

Windows использует расширение .cer для сертификата X.509. Они могут быть в «двоичном» (ASN.1 DER) или кодироваться с помощью Base-64 и иметь заголовок и нижний колонтитул (PEM); Windows распознает либо. Чтобы проверить целостность сертификата, вы должны проверить его подпись, используя открытый ключ эмитента ... который, в свою очередь, является другим сертификатом.

Windows использует файл .pfx для файла PKCS # 12. Этот файл может содержать различную криптографическую информацию, включая сертификаты, цепочки сертификатов, сертификаты корневого центра и закрытые ключи. Его содержимое может быть криптографически защищено (с помощью паролей), чтобы сохранить закрытые ключи закрытыми и сохранить целостность корневых сертификатов.

Windows использует .pvk для файла закрытого ключа. Я не уверен, какой стандарт (если таковой имеется) Windows следует для них. Надеемся, что это ключи PKCS # 8. Эммануэль Бур сообщает, что это проприетарный формат. Некоторая документация доступна.

Вы никогда не должны раскрывать свой закрытый ключ. Они содержатся в файлах .pfx и .pvk.

Как правило, вы только обмениваете свой сертификат (.cer) и сертификаты любых промежуточных эмитентов (т. Е. Сертификаты всех ваших CA, кроме корневого CA) с другими сторонами.

Эриксон
источник
7
Файлы PVK не находятся в PKCS # 8, это собственный формат. См. Drh-consultancy.demon.co.uk/pvk.html
Эммануэль Бур
поищите утилиту pvk2pfx.exe в Windows SDK
BozoJoe
@erickson, какой смысл изобретать .pvk? Разве .pfx не достаточно?
Пейсер
@Pacerier Да, .pfx достаточно. Я не уверен, в чем был смысл .pvk; Я могу только догадываться, что это было изобретено в невежестве.
Эриксон
55

На платформе Windows эти типы файлов используются для информации о сертификатах. Обычно используется для сертификата SSL и инфраструктуры открытых ключей (X.509).

  • Файлы CER: файл CER используется для хранения сертификата X.509. Обычно используется для сертификации SSL для проверки и идентификации безопасности веб-серверов. Файл содержит информацию о владельце сертификата и открытый ключ. Файл CER может быть двоичным (ASN.1 DER) или кодироваться с помощью Base-64 с включенным верхним и нижним колонтитулами (PEM), Windows распознает любой из этих макетов.
  • Файлы PVK: обозначает закрытый ключ. Windows использует файлы PVK для хранения закрытых ключей для подписи кода в различных продуктах Microsoft. PVK - это собственный формат.
  • PFX файлы Personal Exchange Format, это файл PKCS12. Он содержит различную криптографическую информацию, такую ​​как сертификаты, сертификаты корневого центра, цепочки сертификатов и закрытые ключи. Он криптографически защищен паролями, чтобы сохранить закрытые ключи закрытыми и сохранить целостность корневых сертификатов. Файл PFX также используется в различных продуктах Microsoft, таких как IIS.

для получения дополнительной информации посетите: Файлы сертификатов: .Cer x .Pvk x .Pfx

rahul_pratap
источник
4
Cer files: .... "файл содержит информацию о владельце сертификата и открытых и закрытых ключах сертификата" ... неверен. Как указал Эриксон в своем ответе: он содержит только информацию об открытом ключе. Файл .cer с закрытыми и открытыми ключами был бы бесполезен.
thor_hayek
1
Это не верно. Файл .Cer не содержит никаких закрытых ключей. Пожалуйста, улучшите свой ответ.
ANewGuyInTown
36

Вот мои личные, сверхконденсированные заметки, поскольку эта тема относится ко мне в настоящее время, для всех, кто интересуется:

  • Как PKCS12, так и PEM могут хранить целые цепочки сертификатов: открытые ключи, закрытые ключи и корневые (CA) сертификаты .
  • .pfx == .p12 == " PKCS12 "
    • полностью зашифрован
  • .pem == .cer == .cert == " PEM "
    • сертификат X509 (двоичный) в кодировке base-64 (строка) с верхним и нижним колонтитулом
      • base-64 - это просто строка "A-Za-z0-9 + /", используемая для представления 0-63, 6 бит двоичных данных за раз, в последовательности, иногда с 1 или 2 символами "=" в самом конец, когда есть остатки (символы "=" являются "заполнителем / мусором / игнорировать / выбрасывать" символы)
      • верхний и нижний колонтитулы - что-то вроде "----- BEGIN CERTIFICATE -----" и "----- END CERTIFICATE -----" или "----- BEGIN ENCRYPTED PRIVATE KEY --- - "и" ----- КОНЕЦ ЗАКРЫТЫМ ЧАСТНЫМ КЛЮЧОМ ----- "
    • Windows распознает .cer и .cert как файлы сертификации
  • .jks == " Хранилище ключей Java "
    • просто специфичный для Java формат файла, который использует API
      • Файлы .p12 и .pfx также можно использовать с JKS API
  • « Хранилища доверия » содержат публичные, доверенные, корневые (CA) сертификаты , тогда как « Хранилища идентификаторов / ключей » содержат частные, идентификационные сертификаты; по файлам, однако, они одинаковы.
Андрей
источник
Так где же определен .pvk?
zwcloud
@zwcloud Я дал то, что знал в то время. Другие ответы дают это.
Андрей
18

Я на самом деле сталкивался с чем-то подобным не так давно ... проверьте это на MSDN (см. Первый ответ)

В итоге:

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

.pvk - файлы используются для хранения приватных ключей для подписи кода. Вы также можете создать сертификат на основе файла закрытого ключа .pvk.

.pfx - обозначает формат личного обмена. Он используется для обмена открытыми и закрытыми объектами в одном файле. Файл pfx может быть создан из файла .cer. Может также использоваться для создания сертификата издателя программного обеспечения .

Я суммировал информацию со страницы на основе предложения из комментариев.

Райан Ферретти
источник
2
Я бы порекомендовал цитировать или резюмировать связанный контент в дополнение к самой ссылке. Таким образом, вы оба дадите должную оценку и защитите нас от потери информации в следующий раз, когда MS перепроектирует свой сайт.
Джонатан Аллен
Я видел эту ссылку, но я не полностью отвечаю на вопрос.
Джонатан Аллен
15
Также некоторая информация в ссылке неверна. Например, вы не можете извлечь закрытый ключ из сертификата. Очевидно.
Эриксон
На комментарий выше, это не о добыче. Просто не имеет смысла иметь закрытые ключи в файлах .cer. Предполагается, что файл .cer должен использоваться совместно с внешним миром, поэтому он содержит только открытый ключ.
Раджив