Как создать самозаверяющий сертификат для доменного имени для разработки?


у меня есть subdomain.example.com что я использую в целях развития. Мое решение веб-приложения содержит веб-API и т. д., которые мне нужно вызвать из внешних систем, поэтому я не использую localhost.

теперь мне нужно проверить SSL и нужен сертификат для моего subdomain.example.com доменное название.

Я попытался создать самозаверяющий сертификат, как описано в http://technet.microsoft.com/en-us/library/cc753127 (v=ws.10).aspx, но этот сертификат работает только для локальный хост. Можно ли использовать этот сертификат для моих целей или мне нужно будет создать самозаверяющий поддомен для моей разработки? Если мне нужно создать самоподписанный сертификат для моего поддомена развития, какие программы или онлайн сервиса (бесплатного) я могу использовать для этого?

8 93

8 ответов:

я добавляю эту информацию, потому что принятый ответ, похоже, не решает вопрос полностью или, по крайней мере, не решает проблему для меня.

С помощью функции САМОЗАВЕРЯЮЩЕГО сертификата IIS вы не можете установить общее имя (CN) для сертификата и, следовательно, не можете создать сертификат, привязанный к выбранному вами поддомену.

один из способов обойти проблему-использовать makecert.exe, который поставляется в комплекте с .NET 2.0 SDK. На моем сервере это в:

C:\Program Files\Microsoft.Net\SDK\v2.0 64bit\Bin\makecert.exe

вы можете создать центр подписи и сохранить его в хранилище сертификатов LocalMachine следующим образом (эти команды должны выполняться из учетной записи администратора или в командной строке с повышенными привилегиями):

makecert.exe -n "CN=My Company Development Root CA,O=My Company,
 OU=Development,L=Wallkill,S=NY,C=US" -pe -ss Root -sr LocalMachine
 -sky exchange -m 120 -a sha1 -len 2048 -r

затем вы можете создать сертификат, привязанный к вашему поддомену и подписанный вашим новым полномочием:

(обратите внимание, что значение параметра-in должно совпадать со значением CN, используемым для создания полномочий выше.)

makecert.exe -n "CN=subdomain.example.com" -pe -ss My -sr LocalMachine
 -sky exchange -m 120 -in "My Company Development Root CA" -is Root
 -ir LocalMachine -a sha1 -eku 1.3.6.1.5.5.7.3.1

Ваш сертификат должен появиться в Диспетчере IIS, чтобы быть привязан к вашему сайту, как описано в сообщении Тома Холла.

все похвалы за это решение майку О'Брайену за его отличный пост в блоге на http://www.mikeobrien.net/blog/creating-self-signed-wildcard

С Помощью PowerShell

из Windows 8.1 и Windows Server 2012 R2 (Windows PowerShell 4.0) и выше можно создать самозаверяющий сертификат с помощью нового :

примеры:

New-SelfSignedCertificate -DnsName www.mydomain.com -CertStoreLocation cert:\LocalMachine\My

New-SelfSignedCertificate -DnsName subdomain.mydomain.com -CertStoreLocation cert:\LocalMachine\My

New-SelfSignedCertificate -DnsName *.mydomain.com -CertStoreLocation cert:\LocalMachine\My

С помощью Диспетчера IIS

  1. запустите диспетчер IIS
  2. на уровне сервера в разделе IIS выберите сертификаты сервера
  3. справа в разделе Действия выберите Создать Самозаверяющий Сертификат
  4. где он говорит" укажите понятное имя для сертификата " введите соответствующее имя для справки.
    1. примеры: www.domain.com или subdomain.domain.com
  5. затем, выберите сайт из списка на левой стороне
  6. справа в разделе Действия выберите привязки
  7. добавьте новую привязку HTTPS и выберите сертификат, который вы только что создали (если Ваш сертификат является подстановочным знаком сертификат вам нужно будет указать имя хоста)
  8. Нажмите кнопку ОК и проверьте его.

создать новый сертификат для вашего домена:

откройте Powershell ISE от имени администратора, выполните команду:

New-SelfSignedCertificate-DnsName *.mydomain.com, localhost-certstorelocation cert:\LocalMachine\My

чтобы доверять новому сертификату:

открыть mmc.exe

перейдите в корень консоли -> сертификаты (локальный компьютер) -> личные

выберите сертификат, который вы создали, сделать Правой Кнопкой Мыши -> все задачи -> экспорт и следуйте инструкциям мастера экспорта для создания .pfx-файл

перейдите в корневой каталог консоли - > сертификаты - > Доверенные корневые центры сертификации и импортируйте новый .pfx-файл

чтобы привязать сертификат к вашему сайту:

открыть Диспетчер IIS

выберите свой сайт и выберите Редактировать сайт - > привязки в правой панели

добавить новую привязку https с правильным именем хоста и новым сертификат

я столкнулся с этой же проблемой, когда я хотел включить SSL для проекта, размещенного на IIS 8. Наконец, инструмент, который я использовал OpenSSL, после многих дней боев с makecert команды.Сертификат генерируется в Debian, но я мог бы легко импортировать его в IIS 7 и 8.

скачать OpenSSL совместим с вашей ОС и этой файл конфигурации. Установите файл конфигурации в качестве конфигурации по умолчанию OpenSSL.

Сначала мы создадим закрытый ключ и сертификат центра сертификации (CA). Этот сертификат должен подписать запрос сертификата (CSR).

вы должны заполнить все поля, которые необходимы в этом процессе.

  1. openssl req -new -x509 -days 3650 -extensions v3_ca -keyout root-cakey.pem -out root-cacert.pem -newkey rsa:4096

вы можете создать файл конфигурации с настройками по умолчанию : Теперь мы создадим запрос на сертификат, который является файлом, который отправляется в центр сертификации.

общее имя должно быть установлено домен вашего сайта, например: public.organization.com.

  1. openssl req -new -nodes -out server-csr.pem -keyout server-key.pem -newkey rsa:4096

теперь запрос сертификата подписан с сгенерированным сертификатом CA.

  1. openssl x509 -req -days 365 -CA root-cacert.pem -CAkey root-cakey.pem -CAcreateserial -in server-csr.pem -out server-cert.pem

сгенерированный сертификат должен быть экспортирован в .pfx-файл, который можно импортировать в сервер IIS.

  1. openssl pkcs12 -export -out server-cert.pfx -inkey server-key.pem -in server-cert.pem -certfile root-cacert.pem -name "Self Signed Server Certificate"

на этом шаге мы импортируем сертификат CA.

  1. на вашем сервере необходимо импортировать сертификат CA в Доверенные корневые центры сертификации, поскольку IIS может доверять импортируемому сертификату. Помните, что сертификат, который будет импортирован в IIS, был подписан с сертификатом центра сертификации.

    • Откройте командную строку и введите mmc.
    • нажать на кнопку File.
    • выберите добавить/удалить оснастку....
    • дважды щелкните на сертификаты.
    • выберите Учетная Запись Компьютера и далее ->.
    • выберите Локальный Компьютер и готово.
    • ОК.
    • на сертификаты ->Доверенные Корневые Центры Сертификации Власти ->сертификаты, rigth нажмите на сертификаты и выберите Все Задачи ->импорт ...

enter image description here

  • выберите далее ->обзор ...
  • выберите Все Файлы для просмотра местоположения корень-cacert.Пем.
  • нажать на кнопку далее и выберите поместить все сертификаты в следующее хранилище:Доверенные Корневые Центры Сертификации.
  • нажать на кнопку далее и готово.

enter image description here

на этом шаге IIS доверяет подлинности нашего сертификата.

  1. на нашем последнем шаге мы импортируем сертификат в IIS и добавим сайт привязки.

    • открыть интернет Диспетчер информационных служб (IIS) или типа inetmgr в командной строке и нажмите Сертификаты Сервера.
    • нажать на кнопку импорт....
    • прописать путь .файл pfx, пароль и выберите хранилище сертификатов на Хостинг.

enter image description here

  • нажать на кнопку ОК.
  • Теперь перейдите на свой сайт в Диспетчере IIS и выберите привязки... и добавить новая привязка.

  • выберите https в качестве типа привязки, и вы сможете увидеть импортированный сертификат.

  • нажать на кнопку ОК и все делается.

enter image description here

мне пришлось ломать голову над самозаверяющими сертификатами на Windows, комбинируя кусочки из заданных ответов и дальнейших ресурсов. Вот мой собственный (и, надеюсь, полный) проход. Надеюсь, это избавит вас от моей собственной болезненной кривой обучения. Он также содержит информацию по связанным темам, которые рано или поздно появятся при создании собственных сертификатов.

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

не воспользоваться этим инструментом.исполняемый. Это было ... устаревшие корпорацией Майкрософт.
Современный способ использует команду Powershell.

Windows 10:

откройте Powershell с правами администратора:

New-SelfSignedCertificate  -DnsName "*.dev.local", "dev.local", "localhost"  -CertStoreLocation cert:\LocalMachine\My  -FriendlyName "Dev Cert *.dev.local, dev.local, localhost"  -NotAfter (Get-Date).AddYears(15)

Windows 8, Windows Server 2012 R2:

в Powershell на этих системах параметры-FriendlyName и-NotAfter не существуют. Просто удалите их из приведенной выше командной строки.
Откройте PowerShell с правами администратора привилегии:

New-SelfSignedCertificate  -DnsName "*.dev.local", "dev.local", "localhost"  -CertStoreLocation cert:\LocalMachine\My

полученный сертификат

обе вышеуказанные команды создают сертификат для доменов localhost и *.dev.local.
Версия Win10 дополнительно имеет живое время 15 лет и читаемое отображаемое имя "Dev Cert *.разработка.местный, Дев.местный, локальный".

обновление: если вы предоставляете несколько записей имени хоста в параметре -DnsName (как показано выше) первая из этих записей станет доменом Тема (АКА общее название). Полный список всех записей имени хоста будет сохранен в поле Subject Alternative Name (SAN) сертификата. (Спасибо @BenSewards за указание на это.)

после создания сертификат будет сразу доступен в любых HTTPS привязках IIS (инструкции ниже).

доверять сертификату

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

открыть mmc.exe, File → Add / Remove Snap-In → выберите " сертификаты "в левой колонке → Add → выберите" Учетная запись компьютера "→ далее → " локальный компьютер..."→ Готово → ОК

экспорт сертификата из вашего личного магазина

в левой колонке выберите "сертификаты (локальный компьютер) / личные / сертификаты".
Найдите вновь созданный сертификат (в столбце Win 10 "Дружественное имя" может помочь).
Щелкните правой кнопкой мыши этот сертификат → все задачи → экспорт... → Далее → выберите "Нет, не экспортировать закрытый ключ" → Далее → выберите " DER encoded..."→ Далее → введите имя файла и сохраните его.

подсказка: мы намеренно не используем формат файла PFX для экспорта. Он будет включать ваш закрытый ключ в файл экспорта, и вы обычно не хотите, чтобы ваш закрытый ключ никуда не уходил!

импортировать свой сертификат в Доверенные корневые центры сертификации магазин

в левой колонке щелкните правой кнопкой мыши на "сертификаты (локальный компьютер) / доверенный корневой CAs / сертификаты" → все задачи → импорт... → Далее → выберите файл, который вы только что экспортировали → далее → "Поместите все сертификаты в следующее хранилище: доверенный корневой CAs" → Далее → Готово.

использование в МКС

теперь можно перейти в диспетчер IIS, выбрать привязки локального сайта → добавить → https → ввести имя хоста формы myname.dev.local (ваш Серт действует только для *.dev.local) и выберите новый → сертификат ОК.

добавить в hosts

также добавить имя хоста C:\Windows\System32\drivers\etc\hosts:

127.0.0.1  myname.dev.local

С

теперь Chrome и IE должны относиться к сертификату как к надежному и загружать ваш сайт, когда вы открываете https://myname.dev.local.

Firefox поддерживает свое собственное хранилище сертификатов. Чтобы добавить свой сертификат здесь, вы должны открыть свой веб-сайт в FF и добавьте его к исключениям, когда FF предупреждает вас о сертификате.

для браузера Edge может потребоваться больше действий (см. ниже).

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

в Диспетчере IIS

  1. щелкните узел имя машины
  2. Открыть Сертификаты Сервера
  3. в панели действий выберите "Создать Самозаверяющий сертификат"
  4. в укажите понятное имя...'назовите его * Dev (выберите 'Personal' из типа список)
  5. сохранить

теперь, на вашем сайте в IIS...

  1. управление Привязок
  2. создать новую привязку для Https
  3. выберите свой самозаверяющий сертификат из списка
  4. после выбора, поле доменное имя станет включено, и вы сможете ввести свое доменное имя.

enter image description here

еще один простой способ создать самозаверяющий сертификат-использовать Jexus Manager,

Jexus Manager

  1. выберите узел сервера на панели подключения.
  2. на средней панели щелкните значок сертификаты сервера, чтобы открыть страницу управления.
  3. в разделе Панель действий Нажмите кнопку " Создать Самозаверяющий сертификат..." пункт меню.

https://www.jexusmanager.com/en/latest/tutorials/self-signed.html

самозаверяющий сертификат может быть создан с помощью одной строки с помощью сценария PowerShell с помощью командлета ниже.

Командлет: New-SelfSignedCertificate

пример: Нью-SelfSignedCertificate -friendlyname используется USProd_Certif -DNS-имя PRODCD-USCertificate -CertStoreLocation и CERT:\LocalMachine\администраторы мой

Пример : http://dotnet-helpers.com/powershell/create-custom-name-self-signed-certificate-using-powershell/