Ответ 1
Вам нужно будет использовать openssl.
openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt
Ключевой файл - это просто текстовый файл с вашим личным ключом.
Вы можете установить openssl отсюда: openssl
Мне нужен файл .pfx для установки https на веб-сайте IIS.
У меня есть два отдельных файла: сертификат (.cer или pem) и закрытый ключ (.crt), но IIS принимает только файлы .pfx.
Я, очевидно, установил сертификат и доступен в диспетчере сертификатов (mmc), но когда я выбираю Мастер экспорта сертификатов, я не могу выбрать формат PFX (он неактивен)
Существуют ли какие-либо инструменты для этого или примеры С# для выполнения этой программы?
Вам нужно будет использовать openssl.
openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt
Ключевой файл - это просто текстовый файл с вашим личным ключом.
Вы можете установить openssl отсюда: openssl
У командной строки Microsoft Pvk2Pfx есть необходимые функции:
Pvk2Pfx (Pvk2Pfx.exe) - это инструмент командной строки, который копирует информацию открытого ключа и секретного ключа, содержащуюся в файлах .spc,.cer и .pvk, в файл Personal Information Exchange (.pfx).
http://msdn.microsoft.com/en-us/library/windows/hardware/ff550672(v=vs.85).aspx
Примечание. Если вам нужно/хотите/предпочесть решение С#, тогда вы можете рассмотреть возможность использования http://www.bouncycastle.org/ api.
Если вы ищете графический интерфейс Windows, проверьте DigiCert. Я просто использовал это, и это было довольно просто.
Под вкладкой SSL я сначала импортировал сертификат. Затем, как только я выбрал сертификат, я смог экспортировать его как PFX, как с ключевым файлом, так и без него.
Вам НЕ нужны openssl или makecert или все это. Вам также не нужен личный ключ, предоставленный вашим центром сертификации. Я могу почти гарантировать, что проблема в том, что вы ожидаете, что сможете использовать файлы ключей и cer, предоставленные вашим центром сертификации, но они не основаны на "пути IIS". Я так устал видеть плохую и трудную информацию здесь, что решил переписать тему и решение. Когда вы поймете, что происходит, и посмотрите, насколько это просто, вы захотите обнять меня:)
Сертификаты SSL для IIS с PFX раз и навсегда - Объяснение SSL и IIS - http://rainabba.blogspot.com/2014/03/ssl-certs-for-iis-with-pfx-once-and-for.html
Использовать пользовательский интерфейс IIS "Server Certificates" для "Генерации запроса сертификата" (подробности этого запроса выходят за рамки данной статьи, но эти детали являются критическими). Это даст вам 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>
= имя вашего сертификата для создания.
Затем вы можете открыть оснастку диспетчера сертификатов для консоли управления, набрав certmgr.msc в меню "Пуск", выберите "Личные" > "Сертификаты" > и ваш сертификат должен быть доступен.
Вот статья.
https://azure.microsoft.com/documentation/articles/cloud-services-certs-create/
У меня есть ссылка на ваше требование. Объединить файлы CRT и KEY в PFX с OpenSSL
Выдержки из приведенной выше ссылки:
Сначала нам нужно извлечь корневой сертификат ЦС из существующего .crt, потому что нам это нужно позже. Итак, откройте .crt и нажмите на вкладке "Путь к сертификату".
Нажмите самый верхний сертификат (в этом случае VeriSign) и нажмите "Просмотреть" Сертификат. Перейдите на вкладку "Сведения" и нажмите "Копировать в файл"...
Выберите сертификат, закодированный в Base-64 X.509 (.CER). Сохраните его как rootca.cer или что-то подобное. Поместите его в ту же папку, что и другие файлы.
Переименуйте его из rootca.cer в rootca.crt Теперь у нас должно быть 3 файла в наша папка, из которой мы можем создать файл PFX.
Здесь нам нужно OpenSSL. Мы можем либо загрузить и установить его в Windows или просто открыть терминал в OSX.
EDIT:
Существует ссылка поддержка пошаговой информации о том, как установить сертификат.
После успешной установки экспортируйте сертификат, выберите .pfx
format, включите закрытый ключ.
Импортируемый файл может быть загружен на сервер.
Это BY FAR самый простой способ конвертировать *.cer в файлы *.pfx:
Просто загрузите переносимый конвертер сертификатов из DigiCert: https://www.digicert.com/util/pfx-certificate-management-utility-import-export-instructions.htm
Выполните его, выберите файл и получите *.pfx!!
Когда вы говорите, что сертификат доступен в MMC, доступен ли он под "Текущий пользователь" или "Локальный компьютер"? Я обнаружил, что я могу экспортировать только закрытый ключ, если он находится под локальным компьютером.
Вы можете добавить привязку для сертификатов к MMC и выбрать, для какой учетной записи она должна управлять сертификатами. Выберите локальный компьютер. Если вашего сертификата нет, импортируйте его, щелкнув правой кнопкой мыши хранилище и выбрав "Все задачи > Импорт".
Теперь перейдите к импортированному сертификату в версии Локального компьютера для оснастки сертификата. Щелкните правой кнопкой мыши сертификат и выберите "Все задачи > Экспорт". Вторая страница мастера экспорта должна спросить, хотите ли вы экспортировать закрытый ключ. Выберите "Да". Опция PFX теперь будет единственной доступной (она выделена серым цветом, если вы выберете "Нет", а опция экспорта закрытого ключа недоступна в учетной записи "Текущий пользователь" ).
Вам будет предложено установить пароль для файла PFX, а затем установить имя сертификата.
https://msdn.microsoft.com/en-us/library/ff699202.aspx
((соответствующие цитаты из статьи ниже))
Затем вам нужно создать файл .pfx, который вы будете использовать для подписания ваших развертываний. Откройте окно командной строки и введите следующую команду:
PVK2PFX –pvk yourprivatekeyfile.pvk –spc yourcertfile.cer –pfx yourpfxfile.pfx –po yourpfxpassword
где:
-pvk yourprivatekeyfile.pvk is the private key file that you created in step 4.
-spc yourcertfile.cer is the certificate file you created in step 4.
-pfx yourpfxfile.pfx is the name of the .pfx file that will be created.
-po yourpfxpassword is the password that you want to assign to the .pfx file. You will be prompted for this password when you add the .pfx file to a project in Visual Studio for the first time.
(Необязательно (а не для 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
Я создал файл .pfx из файлов .key и .pem.
Подобно этому openssl pkcs12 -inkey rootCA.key -in rootCA.pem -export -out rootCA.pfx
У меня была такая же проблема. Моя проблема заключалась в том, что компьютер, сгенерировавший первоначальный запрос сертификата, разбился до завершения расширенного процесса проверки ssl. Мне нужно было создать новый закрытый ключ, а затем импортировать обновленный сертификат из поставщика сертификатов. Если закрытый ключ не существует на вашем компьютере, вы не можете экспортировать сертификат как pfx. Они имеют серый цвет.
Я знаю, что несколько пользователей говорили об установке этого и того же, и добавляя программы командной строки и загружая...
Лично я ленив и считаю, что все эти методы громоздки и медленны, плюс я не хочу ничего загружать и найти правильные строки cmd, если мне это не нужно.
Лучший способ для меня на моем личном сервере IIS - использовать RapidSSLOnline. Это инструмент, который на сервере позволяет вам загрузить ваш сертификат и закрытый ключ и может сгенерировать для вас файл pfx, который вы можете напрямую импортировать в IIS.
Ссылка находится здесь: https://www.rapidsslonline.com/ssl-tools/ssl-converter.php
Ниже приведены шаги, используемые для запрошенного сценария.
- Выберите текущий тип = PEM
- Изменить для = PFX
- Загрузить сертификат
- Загрузите свой закрытый ключ
- Если у вас есть сертификат ROOT CA или промежуточные сертификаты, загрузите их тоже.
- Задайте пароль по вашему выбору, используемый в IIS
- Нажмите reCaptcha, чтобы доказать, что вы не бот
- Нажмите "Преобразовать"
И для этого вам нужно загрузить PFX и использовать его в процессе импорта в IIS.
Надеюсь, что это поможет другим людям с единомышленниками, ленивыми людьми.
В большинстве случаев, если вы не можете экспортировать сертификат в виде PFX (включая закрытый ключ), это потому, что MMC/IIS не может найти/не иметь доступа к закрытому ключу (используемому для генерации CSR), Вот шаги, которые я предпринял для устранения этой проблемы:
Надеюсь, это поможет!
Хотя, вероятно, проще всего создать новый CSR с использованием IIS (например, @rainabba), если у вас есть промежуточные сертификаты, есть некоторые онлайн-конвертеры - например: https://www.sslshopper.com/ssl-converter.html
Это позволит вам создать PFX из вашего сертификата и закрытого ключа без необходимости установки другой программы.