2009-03-21 6 views
2

Если мы сделаем закрытый ключ экспортируемым (с использованием опции -pe в makecert), теоретически у нас есть как экспортируемый закрытый ключ, так и открытый ключ (открытый ключ в сертификате), который может быть передан или импортирован на другую машину.Зачем нам нужен файл обмена pfx (key exchange)?

Итак, мой вопрос: зачем нам все еще нужно создать файл .pfx (файл обмена ключами, который содержит закрытые и открытые ключи) - заставить закрытый ключ, экспортируемый в сертификат, делать все, что мы хотим? Любые сценарии pfx-файла могут охватывать то, что невозможно было сделать с помощью закрытого ключа, экспортируемого в сертификат?

спасибо заранее, Джордж

ответ

3

Ваш файл PFX может быть защищен паролем, который бы добавить слой защиты

+0

Спасибо Sébastien, я думаю, что в сертификате закрытый ключ также зашифрован. Я не вижу сильной причины в том, что сценарий pfx-файла лучше и должен - чем сертификат с экспортируемым закрытым ключом. – George2

4

Есть ли команда MakeCert линии вы обнаружили, что создаст файл сертификата, который включает в себя закрытый ключ? У меня никогда не было. Я видел, как кто-то намекнул на то, что есть версия makecert, которая может создавать файлы .pfx, но также никогда не видела этого.

Это означает, что в лучшем случае вы можете создать TWO-файлы с помощью makecert, если вы хотите получить файл секретного ключа. Один для сертификата и один для секретного ключа. Вы можете скопировать оба этих файла на другой компьютер и импортировать их с помощью makecert.

Преимущество формата сертификата .pfx заключается в том, что вы можете объединить два файла с сертификатом и закрытым ключом в один. Это более удобно, а также означает, что вы можете использовать файл с классом .Net X509Certificate2 для использования с SslStream.

+0

«Есть ли в командной строке makecert, которая будет генерировать файл сертификата, который содержит закрытый ключ? У меня никогда не было». Я имею в виду makecert -pe. Любые комментарии? – George2

+0

Команда -pe не будет включать закрытый ключ в файл сертификата. Вы можете проверить это самостоятельно, используя -pe, скопируйте файл сертификата на другой компьютер, импортируйте его, и вы увидите, что нет закрытого ключа. – sipwiz

+0

Я смущен. -pe в MSDN говорит, что он используется для экспорта частного ключа. Не могли бы вы пояснить, пожалуйста? – George2

2

Проблема заключается в том, что X509 Certificate standard (сертификат) не включает закрытый ключ. Сертификат содержит информацию открытого ключа (ака, открытый ключ) и информацию о владельце секретного ключа, но стандарт не поддерживает, включая закрытый ключ. Это основная идея PKI - сертификат - это общедоступная информация, которую вы передаете миру, частный ключ - это то, что вы держите очень надежно.

Создание частного ключа, экспортируемого в любом механизме (например, makecert), означает, что вы сообщаете этому продукту, что ключ может быть экспортирован. Он не определяет формат файла, который вы хотите использовать для его хранения. Файл pfx является одним из способов хранения закрытого ключа - он использует PKCS 12 standard. Java Key Stores (* .jks) - это еще один способ сделать то же самое. Большинство коммерческих стандартов имеют сходные общие черты - они защищают закрытый ключ, шифруя его. Шифрование можно разблокировать с помощью пароля. Они связывают закрытый ключ с сертификатом, который его описывает.

+0

Из вашего комментария, я понимаю, что PFX нельзя использовать в среде PKI? Я прав? как вы хотите, чтобы ваш закрытый ключ прыгал, хотя и защищен паролем? – Raj

0

Если вы хотите создать файл PFX, вы должны иметь как открытый ключ сертификата x509, так и файл закрытого ключа, который вы можете сгенерировать с помощью команды makecert. PFX может быть сгенерирован с использованием команды PVk2PFX, которую вы можете найти в руководстве по установке Microsoft SDK.

 Смежные вопросы

  • Нет связанных вопросов^_^