Как создать сертификат windows 2012

Как создать самоподписанный сертификат в Windows?

Большинству администраторов Windows, знакомых с темой PKI, известна утилита MakeCert.exe, с помощью которой можно создать самоподписанный сертификат. Эта утилита включена в состав Microsoft .NET Framework SDK и Microsoft Windows SDK. В современых версиях Windows 10/8.1 и Windows Server 2016/2012R2 вы можете создать самоподписанный сертификат с помощью PowerShell без использования дополнительных утилит.

New-SelfSignedCertificate: командлет PowerShell для генерации самоподписанного сертификата

Для создания самоподписанного сертификата в PowerShell нужно использовать командлет New-SelfSignedCertificate, входящий в состав модуля PKI (Public Key Infrastructure).

Чтобы вывести список всех доступных командлетов в модуле PKI, выполните команду:

Get-Command -Module PKI

Самоподписанные сертификаты рекомендуется использовать в тестовых целях или для обеспечения сертификатами внутренних интранет служб (IIS, Exchange, Web Application Proxy, LDAPS, ADRMS, DirectAccess и т.п.), в тех случая когда по какой-то причине приобретение сертификата у внешнего провайдера или разворачивание инфраструктуры PKI/CA невозможны.

Для создания сертификата нужно указать значения DnsName (DNS имя сервера, имя может быть произвольным и отличаться от имени localhost) и CertStoreLocation (раздел локального хранилища сертификатов, в который будет помещен сгенерированный сертификат). Командлет можно использовать для создания самоподписанного сертификата в Windows 10 (в нашем примере), Windows 8/8.1 и Windows Server 2019/2016/2012 R2.

Чтобы создать новый SSL сертификат типа SSLServerAuthentication (по умолчанию) для DNS имени test.contoso.com (указывается FQDN имя) и поместить его в список персональных сертификатов компьютера, выполните команду:

New-SelfSignedCertificate -DnsName test.contoso.com -CertStoreLocation cert:\LocalMachine\My

Directory: Microsoft.PowerShell.Security\Certificate::LocalMachine\My
Thumbprint Subject
———- ——-
2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 CN=test.contoso.com

Если вы указали нестандартный криптографический провайдер CSPs (например, с помощью параметров -KeyAlgorithm «ECDSA_secP256r1» -Provider ‘Microsoft Smart Card Key Storage Provider’ ), убедитесь, что он установлен на компьютере (по умолчанию используется CSP Microsoft Enhanced Cryptographic Provider). Иначе появится ошибка:

По-умолчанию генерируется самоподписанный сертификат со следующим параметрами:

  • Криптографический алгоритм: RSA;
  • Размер ключа: 2048 бит;
  • Допустимые варианты использования ключа: Client Authentication и Server Authentication;
  • Сертификат может использоваться для: Digital Signature, Key Encipherment ;
  • Срок действия сертификата: 1 год.

Данная команда создаст новый сертификат и импортирует его в персональное хранилище компьютера. Откройте оснастку certlm.msc и проверьте, что в разделе Personal хранилища сертификатов компьютера появился новый сертификат.

С помощью командлета Get-ChildItem можно вывести все параметры созданного сертификата по его отпечатку (Thumbprint):

Читайте также:  Windows diagnostic tracking service что

Get-ChildItem -Path «Cert:\LocalMachine\My» | Where-Object Thumbprint -eq DC1A0FDE0120085A45D8E14F870148D1EBCB82AE | Select-Object *

$todaydate = Get-Date
$add3year = $todaydate.AddYears(3)
New-SelfSignedCertificate -dnsname test.contoso.com -notafter $add3year -CertStoreLocation cert:\LocalMachine\My

Можно создать цепочку сертфикатов. Сначала создается корневой сертификат (CA), а на основании него генерируется SSL сертификат сервера:

$rootCert = New-SelfSignedCertificate -Subject «CN=TestRootCA,O=TestRootCA,OU=TestRootCA» -KeyExportPolicy Exportable -KeyUsage CertSign,CRLSign,DigitalSignature -KeyLength 2048 -KeyUsageProperty All -KeyAlgorithm ‘RSA’ -HashAlgorithm ‘SHA256’ -Provider «Microsoft Enhanced RSA and AES Cryptographic Provider» `
New-SelfSignedCertificate -CertStoreLocation cert:\LocalMachine\My -DnsName «test2.contoso.com» -Signer $rootCert -KeyUsage KeyEncipherment,DigitalSignature

Для экспорта полученного сертификата c закрытым ключом в pfx файл, защищенный паролем, нужно получить его отпечаток (Thumbprint). Сначала нужно указать пароль защиты сертификата и преобразовать его в формат SecureString. Значение Thumbprint нужно скопировать из результатов выполнения команды New-SelfSignedCertificate.

$CertPassword = ConvertTo-SecureString -String “YourPassword” -Force –AsPlainText

Export-PfxCertificate -Cert cert:\LocalMachine\My\2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 -FilePath C:\test.pfx -Password $CertPassword

Можно экспортировать открытый ключ сертификата:

Export-Certificate -Cert Cert:\LocalMachine\My\2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 -FilePath C:\testcert.cer

Проверьте, что в указанном каталоге появился cer(PFX)файл сертификата. Если щелкнуть по нему правой клавишей и выбрать пункт меню Install Certificate, можно с помощью мастера импорта сертификатов добавить сертификат в корневые доверенные сертификаты компьютера.

Выберите Store location -> Local Machine, Place all certificates in the following store -> Trusted Root Certification Authorities.

Полученный открытый ключ или сам файл сертификата можно распространить на все компьютеры и сервера в домене с помощью GPO (пример установки сертификата на компьютеры с помощью групповых политик).

Одной из полезных возможностей командлета New-SelfSignedCertificate является возможность создать сертификат с несколькими различными именами Subject Alternative Names (SAN).

Если создается сертификат с несколькими именами, первое имя в параметре DnsName будет использоваться в качестве CN (Common Name) сертификата. К примеру, создадим сертификат, у которого указаны следующие имена:

  • Subject Name (CN): adfs1.contoso.com
  • Subject Alternative Name (DNS): web-gw.contoso.com
  • Subject Alternative Name (DNS): enterprise-reg.contoso.com

Команда создания сертификата будет такой:

New-SelfSignedCertificate -DnsName adfs1.contoso.com,web_gw.contoso.com,enterprise_reg.contoso.com -CertStoreLocation cert:\LocalMachine\My

Также можно сгенерировать wildcard сертификат для всего пространства имен домена, для этого в качестве имени сервера указывается *.contoso.com.

New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname *.contoso.com

Создать самоподписанный сертфикат типа Code Signing для подписывания кода

В PoweShell 3.0 командлет New-SelfSifgnedCertificate позволял генерировать только SSL сертификаты, которые нельзя было использоваться для подписывания кода драйверов и приложений (в отличии сертификатов, генерируемых утилитой MakeCert).

В версии PowerShell 5 новая версия командлета New-SelfSifgnedCertificate теперь может использоваться для выпуска сертификатов типа Code Signing.

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

$cert = New-SelfSignedCertificate -Subject «Cert for Code Signing” -Type CodeSigningCert -CertStoreLocation cert:\LocalMachine\My

Set-AuthenticodeSignature -FilePath C:\PS\test_script.ps1 -Certificate $cert

Если при выполнении команды появится предупреждение UnknownError, значит этот сертификат недоверенный, т.к. находится в персональном хранилище сертификатов пользователя.

Читайте также:  Астра линукс запуск под root

Move-Item -Path $cert.PSPath -Destination «Cert:\CurrentUser\Root»

После этого вы можете подписать свой PowerShell скрипт с помощью данного самоподписанного сертификата.

Использование самоподписанного SSL сертификата SHA-256 в IIS

Обратите внимание, что при создании самоподписанный сертификат для IIS через консоль Internet Information Manager (пункт меню Create Self-Signed Certificate), создается сертификат с исопльзованием алгоритма шифрования SHA-1. Такие сертификаты многими браузерами считаются недоверенными, поэтому они могут выдавать предубеждение. Командлет New-SelfSignedCertificate позволяет создать более популырный тип сертификата с помощью алгоритма шифрования SHA-256.

Вы можете привязать самоподписанный сертификат SHA-256, созданный в PowerShell, к сайту IIS. Если вы с помощью PowerShell создали SSL сертификат и поместили его в хранилище сертификатов компьютера, он будет автоматически доступен для сайтов IIS.

Запустите консоль IIS Manager, выберите ваш сайт, затем в настройке Site Binding, выберите созданный вами сертификат и сохраните изменения.

Как сгенерировать запрос на SSL-сертификат для ОС Windows

Рассмотрим создание CSR запроса на примере 2012 Standard. Оно состоит из нескольких простых шагов:

1) Перейдите в диспетчер IIS (Internet Information Services Manager) из меню Пуск – Администрирование.

2) Выберите сервер, в списке кликните по сертификатам.

3) В меню справа выберите «Создать запрос сертификата».

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

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

4) После заполнения данных сертификата укажите, где сохранить файл запроса.

Секретный ключ сохраняется в системе по умолчанию.

Теперь можно смело заказывать сертификат с созданным запросом – укажите его на втором шаге покупки.

Генерация CSR-запроса в IIS 8

Для того, чтобы получить SSL-сертификат в 1cloud.ru, вам необходимо выполнить два шага: сгенерировать CSR-запрос (Certificate Signing Request) для вашего сайта, а затем заказать SSL-сертификат через панель управления 1cloud.ru.

В этой инструкции описана процедура генерации запроса на подпись сертификата на веб-сервере IIS 8 в Windows Server 2012.

SSL-сертификаты от 550 руб.

  • Все доверенные центры сертификации
  • Большой выбор сертификатов
  • Пошаговые инструкции по выпуску и установке

Для создания запроса CSR необходимо:

  1. Запустить Диспетчер Серверов (Server Manager), выполнив: Пуск (Start) ->Администрирование (Administrative Tools) ->Диспетчер серверов (Server Manager)
  2. В меню Средства (Tools) выбрать Диспетчер служб IIS (Internet Information Services Manager).

Примечение: Если оснастка Диспетчер служб IIS отсутствует в вашем Диспетчере Серверов, вам необходимо добавить соответствующую роль на сервер. Для этого в том же Диспетчере серверов откройте меню Управление и выберите пункт Добавить роли и компоненты. В открывшемся окне выберите ваш сервер и установите флажок на роли Веб-сервер (IIS). Далее следуйте подсказкам Мастера Установки.
В панели Подключения (Connections) в левой части окна указать сервер, для которого вы будете генерировать CSR-запрос.

Читайте также:  Asus m51vr драйвера windows 10

В центральной части окна выбрать Сертификаты сервера (Server Certificates)

  • В меню Действия (Actions) в правой части экрана выбрать пункт Создать запрос сертификата (Create Certificate Request).
  • Далее необходимо ввести значения полей Свойства различающегося имени (Distinguished Name Properties) (все поля заполняются латиницей):
    • Полное имя (Common Name) — полное доменное имя (FQDN) или URL, для которого планируется использовать сертификат.
      Примечание: например, сертификат, выпущенный для адреса. www.mydomain.com не действителен для поддомена subdomain.mydomain.com.
      Если вы приобретаете Wildcard-сертификат (сертификат для домена и его поддоменов), указанное здесь доменное имя должно начинаться с символа * (*.mydomain.com).
    • Организация (Organization) — официальное название организации-владельца сайта.
      Для получения сертификатов с валидацией организации (OV-Organization Validation) и сертификатов с расширенной проверкой (EV-Extended Validation) это поле является обязательным и должно содержать имя организации, под которым она официально зарегистрирована.
      При заказе сертификата физическим лицом (актуально для SSL-сертификатов c домена(DV-Domain Validation)), в этом поле необходимо указать полное имя владельца сертификата, а в поле Organizational Unit — название вашей площадки или бренда (DBA-Doing Business As), при его наличии.
    • Подразделение (Organizational Unit) — внутренний отдел/департамент организации («Engineering», «Management»).
    • Город (City/Locality) — полное название города, в котором зарегистрирована организация.
    • Область/край (State/Province) — полное название области, района, штата, в котором зарегистрирована организация.
    • Страна или регион (Country) — двухбуквенный код страны организации-владельца сертификата.

    Нажмите Далее (Next). В меню Поставщик средств шифрования (Cryptographic service provider) выберите Microsoft RSA SChannel Cryptographic Provider.

  • Длина ключа в битах (Bit length) — 2048 бит или выше.
  • Нажмите Далее (Next), укажите директорию и имя файла запроса, а затем нажмите Готово (Finish).

    Заказ SSL-сертификата в панели управления 1cloud.ru

    Далее необходимо отправить сгенерированный CSR-запрос на подпись в Центр Сертификации через панель управления 1cloud.ru:

      Войдите в панель управления, откройте меню «SSL» и нажмите кнопку «Заказать сертификат».

  • На открывшейся странице выберите интересующий вас сертификат.
  • Во вкладке Данные владельца заполните все поля:
    • Откройте ранее сгенерированный файл CSR-запроса, скопируйте его содержимое в буфер обмена и вставьте его в поле CSR панели управления 1cloud
    • Заполните остальные поля по аналогии с приведенным ниже примером и нажмите на кнопку Заказать.

    На этом процедура заказа SSL-сертификата завершена. Инструкции по получению заказанного сертификата будут отправлены на ваш адрес электронной почты.

    После получения сертификата его необходимо установить на веб-сервер. Для этого вы можете воспользоваться нашей инструкцией по установке SSL-сертификата на IIS 8 (Windows Server 2012).

    Оцените статью