Вопрос

Мне нужен файл .pfx для установки HTTPS на веб -сайте на IIS.

У меня есть два отдельных файла: сертификат (.cer или pem) и закрытый ключ (.crt), но IIS принимает только файлы .pfx.

Я, очевидно, установил сертификат, и он доступен в диспетчере сертификатов (MMC), но когда я выбираю мастер экспорта сертификатов, я не могу выбрать формат PFX (он серо -серий)

Есть ли какие -нибудь инструменты для этого или примеры C# выполнять эту программу?

Нет правильного решения

Другие советы

Вам нужно будет использовать OpenSSL.

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt

Файл ключа - это просто текстовый файл с вашим закрытым ключом.

Если у вас есть корневая Ca и промежуточные сертификаты, то также включите их, используя несколько -in параметры

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt -in intermediate.crt -in rootca.crt

Вы можете установить OpenSSL отсюда: openssl

Утилита командной строки Microsoft PVK2PFX, кажется, имеет необходимую функциональность:

PVK2PFX (pvk2pfx.exe)-это инструмент командной строки, копирует публичный ключ и информацию об открытом ключе, содержащуюся в файлах .spc, .cer и .pvk в файлах обмена личной информацией (.pfx).
http://msdn.microsoft.com/en-us/library/windows/hardware/ff550672(v=vs.85).aspx

ПРИМЕЧАНИЕ. Если вам нужно/Want/Precement Co# Solution, вы можете рассмотреть возможность использования http://www.bouncycycastle.org/ API

Если вы ищете графический интерфейс Windows, ознакомьтесь с Digicert. Я просто использовал это, и это было довольно просто.

Под вкладкой SSL я впервые импортировал сертификат. Затем, как только я выбрал сертификат, я смог экспортировать как PFX, как с файлом ключа, так и без него.

https://www.digicert.com/util

Вам не нужен OpenSSL или MakeCert или что -то из этого. Вам также не нужен личный ключ, предоставленный вам вашим CA. Я почти могу гарантировать, что проблема в том, что вы ожидаете, что сможете использовать ключевые и CER -файлы, предоставленные вашим CA, но они не основаны на «Way IIS». Я так устал видеть плохую и трудную информацию здесь, что решил вести блог о предмете и решении. Когда вы поймете, что происходит, и посмотрите, как это легко, вы захотите обнять меня :)

SSL Certs для IIS с PFX раз и навсегда - SSL и IIS объяснили - http://rainabba.blogspot.com/2014/03/ssl-certs-for-iis-with-pfx-once-and-for.html

Используйте IIS «сертификаты серверов» для «генерации запроса на сертификат» (подробности этого запроса не в том числе этой статьи, но эти данные имеют решающее значение). Это даст вам CSR, подготовленную для IIS. Затем вы даете этот CSR своему CA и просите сертификат. Затем вы берете файл CER/CRT, который они дают вам, вернетесь в IIS «Полный запрос на сертификат» в том же месте, где вы сгенерировали запрос. Он может попросить .cer, и у вас может быть .crt. Они то же самое. Просто измените расширение или используйте . Расширение раскрытия для выбора вашего .crt. Теперь предоставьте правильное «дружественное имя» (*.yourdomain.com, yourdomain.com, foo.yourdomain.com и т. Д.) Это важно! Это должно соответствовать тому, для чего вы настроили CSR, и что вы предоставили вам. Если вы попросили подстановку, ваш CA должен был одобрить и сгенерировать подстановку, и вы должны использовать то же самое. Если ваш CSR был сгенерирован для foo.yourdomain.com, вы должны предоставить то же самое на этом шаге.

Вам нужно использовать инструмент MakeCert.

Откройте командную строку в качестве администратора и введите следующее:

makecert -sky exchange -r -n "CN=<CertificateName>" -pe -a sha1 -len 2048 -ss My "<CertificateName>.cer"

Где <CertifcateName> = имя вашего сертификата для создания.

Затем вы можете открыть Snap-In Manager Manager для консоли управления, набрав certmgr.msc в меню «Пуск», нажмите «Персональные> сертификаты>», и ваш сертификат должен быть доступен.

Вот статья.

https://azure.microsoft.com/documentation/articles/cloud-services-certs-create/

https://msdn.microsoft.com/en-us/library/ff699202.aspx

((Соответствующие цитаты из статьи ниже))

Далее вы должны создать файл .pfx, который вы будете использовать для подписи вашего развертывания. Откройте окно командной строки и введите следующую команду:

PVK2PFX –pvk yourprivatekeyfile.pvk –spc yourcertfile.cer –pfx yourpfxfile.pfx –po yourpfxpassword

куда:

  • PVK - yourpivateKeyfile.pvk - это файл закрытого ключа, который вы создали на шаге 4.
  • spc - yourcertfile.cer - это файл сертификата, который вы создали на шаге 4.
  • pfx - yourpfxfile.pfx - это имя файла .pfx, который будет создавать.
  • PO - yourpfxpassword - это пароль, который вы хотите назначить в файл .pfx. Вам будет предложено для этого пароля, когда вы впервые добавите файл .pfx в проект в Visual Studio.

(Необязательно (и не для OP, но для будущих читателей) вы можете создать файл .cer и .pvk с нуля) (вы сделаете это до вышеперечисленного). Обратите внимание, что MM/DD/YYYY являются заполнителями для начала и окончания. См. Статью MSDN для полной документации.

makecert -sv yourprivatekeyfile.pvk -n "CN=My Certificate Name" yourcertfile.cer -b mm/dd/yyyy -e mm/dd/yyyy -r

Я получил ссылку с вашим требованием.Объедините CRT и ключевые файлы в PFX с OpenSSL

Выдержки из приведенной выше ссылки:

Сначала нам нужно извлечь сертификат корневого CA из существующего файла .crt, потому что нам это нужно позже. Так что откройте .CRT и нажмите на вкладку «Путь сертификации».

Нажмите на самый верхний сертификат (в данном случае Verisign) и нажмите сертификат просмотра. Выберите вкладку «Подробности» и нажмите «Скопировать» в файл…

Выберите Сертификат BASE-64, кодированный X.509 (.Cer) Сохраните его как rootca.cer или что-то подобное. Поместите его в ту же папку, что и другие файлы.

Переименовать его от rootca.cer в rootca.crt Теперь у нас должно быть 3 файла в нашей папке, из которого мы можем создать файл PFX.

Вот где нам нужен OpenSSL. Мы можем тоже Загрузите и установите его в Windows, или просто открыть терминал на OSX.

РЕДАКТИРОВАТЬ:

  1. Eсть Поддержка ссылки с пошаговой информацией о том, как установить сертификат.

  2. После успешной установки экспортируйте сертификат, выберите .pfx Формат, включите закрытый ключ.

    Важная заметка: : Для экспорта сертификата в формате .pfx вам необходимо выполнить шаги на той же машине, с которой вы запросили сертификат.

  3. Импортный файл может быть загружен на сервер.

Это, безусловно, самый простой способ преобразования *.cer в файлы *.pfx:

Просто загрузите портативный конвертер сертификатов из Digicert:https://www.digicert.com/util/pfx-certificate-management-utility-import-export-instructions.htm

Выполните его, выберите файл и получите свой *.pfx !!

Я создал файл .pfx из файлов .key и .pem.

Как это openssl pkcs12 -inkey rootCA.key -in rootCA.pem -export -out rootCA.pfx

Когда вы говорите, что сертификат доступен в MMC, доступен ли он при «текущем пользователе» или «локальном компьютере»? Я обнаружил, что могу экспортировать закрытый ключ, только если он находится под локальным компьютером.

Вы можете добавить Snap для сертификатов в MMC и выбрать, для какой учетной записи он должен управлять сертификатами. Выберите локальный компьютер. Если вашего сертификата нет, импортируйте его, щелкнув правой кнопкой мыши и выбирая все задачи> Импорт.

Теперь перейдите к своему импортному сертификату под локальной компьютерной версией сертификата Snap In. Щелкните правой кнопкой мыши и выберите все задачи> Экспорт. Вторая страница мастера экспорта должна спросить, хотите ли вы экспортировать закрытый ключ. Выберите «Да». Опция PFX теперь будет единственной доступной (она выходит на серые, если вы выберете NO, и опция для экспорта закрытого ключа не доступна в текущей учетной записи пользователя).

Вам будет предложено установить пароль для файла PFX, а затем установить имя сертификата.

У меня была такая же проблема. Моя проблема заключалась в том, что компьютер, который сгенерировал первоначальный запрос на сертификат, сбился до завершения расширенного процесса проверки SSL. Мне нужно было сгенерировать новый закрытый ключ, а затем импортировать обновленный сертификат от поставщика сертификатов. Если на вашем компьютере нет личного ключа, то вы не можете экспортировать сертификат как PFX. Они вариант сероайр.

Хотя, вероятно, легче всего сгенерировать новую КСО с помощью IIS (как сказал @Rainabba), предполагая, что у вас есть промежуточные сертификаты, есть некоторые онлайн -конвертеры - например: например:https://www.sslshopper.com/ssl-converter.html

Это позволит вам создать PFX из вашего сертификата и закрытого ключа без необходимости установить другую программу.

В большинстве случаев, если вы не можете экспортировать сертификат как PFX (включая закрытый ключ), потому что MMC/IIS не может найти/не иметь доступа к закрытому ключу (используемый для генерации CSR). Это шаги, которые я выполнил, чтобы решить эту проблему:

  • Запустите MMC как администратор
    • Создайте CSR с помощью MMC. Следовать это инструкции Чтобы сделать сертификат экспортируемым.
  • Как только вы получите сертификат от CA (CRT + P7B), импортируйте их (личные сертификаты и промежуточные сертификаты Сертификаты)
  • Важно: щелкните правой кнопкой мыши свой новый сертификат (личные сертификаты) все задачи .. Управляйте закрытым ключом и назначите разрешения вашей учетной записи или всем (рискованно!). Вы можете вернуться к предыдущим разрешениям, как только закончите.
  • Теперь щелкните правой кнопкой мыши сертификат и выберите все задачи ... экспорт, и вы сможете экспортировать сертификат, включая закрытый ключ как файл PFX, и вы можете загрузить его в Azure!

Надеюсь это поможет!

Я знаю, что несколько пользователей говорили об установке этого и об добавлении программ командных строк и загрузке ...

Лично я ленив и нахожу все эти методы громоздкими и медленными, плюс я не хочу ничего скачать и находить правильные строки CMD, если мне не нужно.

Лучший способ для меня на моем личном сервере IIS - использовать RapidsSlonline. Это инструмент, который находится на сервере, позволяет загружать свой сертификат и закрытый ключ и может создать для вас файл PFX, который вы можете напрямую импортировать в IIS.

Ссылка здесь:https://www.rapidsslonline.com/ssl-tools/ssl-converter.php

Ниже приведены шаги, используемые для запрошенного сценария.

  1. Выберите текущий тип = pem
  2. Изменение для = pfx
  3. Загрузите свой сертификат
  4. Загрузите свой закрытый ключ
  5. Если у вас есть корневые CA CER или промежуточные сертификаты, загрузите их тоже
  6. Установите пароль по вашему выбору, используемый в IIS
  7. Нажмите на Recaptcha, чтобы доказать, что вы не бот
  8. Нажмите преобразовать

И вот и все, вы должны загрузить PFX и использовать это в процессе импорта на IIS.

Надеюсь, это поможет другим, как единомышленник, ленивые технологии.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top