Самоподписанный сертификат windows server 2016

Содержание
  1. Как создать самоподписанный сертификат в Windows?
  2. New-SelfSignedCertificate: командлет PowerShell для генерации самоподписанного сертификата
  3. Создать самоподписанный сертфикат типа Code Signing для подписывания кода
  4. Использование самоподписанного SSL сертификата SHA-256 в IIS
  5. Управление SSL-сертификатами в AD FS и WAP в Windows Server 2016 Managing SSL Certificates in AD FS and WAP in Windows Server 2016
  6. Получение SSL-сертификатов Obtaining your SSL Certificates
  7. Сколько сертификатов требуется How many certificates are needed
  8. Требования к сертификатам SSL SSL Certificate Requirements
  9. Замена SSL-сертификата для AD FS Replacing the SSL certificate for AD FS
  10. Замена SSL-сертификата для AD FS, выполняемого в режиме привязки проверки подлинности сертификата по умолчанию Replacing the SSL certificate for AD FS running in default certificate authentication binding mode
  11. Дополнительные замечания Additional Notes
  12. Замена SSL-сертификата для AD FS, работающего в альтернативном режиме привязки TLS Replacing the SSL certificate for AD FS running in alternate TLS binding mode
  13. Дополнительные замечания Additional Notes
  14. Замена сертификата SSL для прокси веб-приложения Replacing the SSL certificate for the Web Application Proxy

Как создать самоподписанный сертификат в 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):

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 (пример установки сертификата на компьютеры с помощью групповых политик).

Читайте также:  Как удалить dns сервер windows 10

Одной из полезных возможностей командлета 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, значит этот сертификат недоверенный, т.к. находится в персональном хранилище сертификатов пользователя.

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-сертификатами в AD FS и WAP в Windows Server 2016 Managing SSL Certificates in AD FS and WAP in Windows Server 2016

В этой статье описывается, как развернуть новый SSL-сертификат на серверах AD FS и WAP. This article describes how to deploy a new SSL certificate to your AD FS and WAP servers.

Рекомендуемый способ замены SSL-сертификата, пересылаемого в AD FS ферму, — использование Azure AD Connect. The recommended way to replace the SSL certificate going forward for an AD FS farm is to use Azure AD Connect. Дополнительные сведения см. в статье обновление SSL-сертификата для фермы службы федерации Active Directory (AD FS) (AD FS) . For more information see Update the SSL certificate for an Active Directory Federation Services (AD FS) farm

Получение SSL-сертификатов Obtaining your SSL Certificates

Для производственных AD FS ферм рекомендуется использовать общедоступный доверенный SSL-сертификат. For production AD FS farms a publicly trusted SSL certificate is recommended. Обычно это достигается путем отправки запроса подписи сертификата (CSR) стороннему поставщику сертификатов. This is usually obtained by submitting a certificate signing request (CSR) to a third party, public certificate provider. Существует множество способов создания CSR, в том числе с компьютера под управлением Windows 7 или более поздней версии. There are a variety of ways to generate the CSR, including from a Windows 7 or higher PC. Поставщик должен иметь документацию для этого. Your vendor should have documentation for this.

Сколько сертификатов требуется How many certificates are needed

Мы рекомендуем использовать общий SSL-сертификат для всех AD FS и прокси серверов. It is recommended that you use a common SSL certificate across all AD FS and Web Application Proxy servers. Подробные требования см. в документе AD FS и требования SSL-сертификата для прокси For detailed requirements see the document AD FS and Web Application Proxy SSL certificate requirements

Требования к сертификатам SSL SSL Certificate Requirements

Требования, включая именование, корневой уровень доверия и расширений, см. в документе AD FS и требования SSL к сертификатам прокси веб-приложения . For requirements including naming, root of trust and extensions see the document AD FS and Web Application Proxy SSL certificate requirements

Замена SSL-сертификата для AD FS Replacing the SSL certificate for AD FS

Сертификат AD FS SSL не совпадает с сертификатом связи службы AD FS, найденным в оснастке управления AD FS. The AD FS SSL certificate is not the same as the AD FS Service communications certificate found in the AD FS Management snap-in. Чтобы изменить AD FS SSL-сертификат, потребуется использовать PowerShell. To change the AD FS SSL certificate, you will need to use PowerShell.

Читайте также:  Vmware workstation как установить kali linux

Сначала определите режим привязки сертификата, в котором выполняются серверы AD FS: привязка проверки подлинности сертификата по умолчанию или альтернативный режим привязки клиента TLS. First, determine which certificate binding mode your AD FS servers are running: default certificate authentication binding, or alternate client TLS binding mode.

Замена SSL-сертификата для AD FS, выполняемого в режиме привязки проверки подлинности сертификата по умолчанию Replacing the SSL certificate for AD FS running in default certificate authentication binding mode

AD FS по умолчанию выполняет проверку подлинности сертификата устройства через порт 443 и проверку подлинности сертификата пользователя через порт 49443 (или настраиваемый порт, не 443). AD FS by default performs device certificate authentication on port 443 and user certificate authentication on port 49443 (or a configurable port that is not 443). В этом режиме используйте командлет PowerShell Set-AdfsSslCertificate для управления SSL-сертификатом. In this mode, use the powershell cmdlet Set-AdfsSslCertificate to manage the SSL certificate.

Выполните инструкции, описанные ниже. Follow the steps below:

Сначала необходимо получить новый сертификат. First, you will need to obtain the new certificate. Обычно это делается путем отправки запроса подписи сертификата (CSR) сторонним поставщикам сертификатов. This is usually done by submitting a certificate signing request (CSR) to a third party, public certificate provider. Существует множество способов создания CSR, в том числе с компьютера под управлением Windows 7 или более поздней версии. There are a variety of ways to generate the CSR, including from a Windows 7 or higher PC. Поставщик должен иметь документацию для этого. Your vendor should have documentation for this.

После получения ответа от поставщика сертификатов импортируйте его в хранилище локального компьютера на каждом AD FS и на прокси-сервере. Once you get the response from your certificate provider, import it to the Local Machine store on each AD FS and Web Application Proxy server.

На сервере- источнике AD FS используйте следующий командлет для установки нового SSL-сертификата. On the primary AD FS server, use the following cmdlet to install the new SSL certificate

Отпечаток сертификата можно найти, выполнив следующую команду: The certificate thumbprint can be found by executing this command:

Дополнительные замечания Additional Notes

  • Командлет Set-AdfsSslCertificate является командлетом с несколькими узлами. Это означает, что будет выполнено обновление только с первичного узла и всех узлов фермы. The Set-AdfsSslCertificate cmdlet is a multi-node cmdlet; this means it only has to run from the primary and all nodes in the farm will be updated. Это новое в сервере 2016. This is new in Server 2016. На сервере 2012 R2 необходимо было выполнить Set-AdfsSslCertificate на каждом сервере. On Server 2012 R2 you had to run Set-AdfsSslCertificate on each server.
  • Командлет Set-AdfsSslCertificate должен выполняться только на сервере-источнике. The Set-AdfsSslCertificate cmdlet has to be run only on the primary server. Сервер первичного сервера должен работать под сервером 2016, и уровень поведения фермы должен быть повышен до 2016. The primary server has to be running Server 2016 and the Farm Behavior Level should be raised to 2016.
  • Командлет Set-AdfsSslCertificate будет использовать удаленное взаимодействие PowerShell для настройки других серверов AD FS, убедитесь, что порт 5985 (TCP) открыт на других узлах. The Set-AdfsSslCertificate cmdlet will use PowerShell Remoting to configure the other AD FS servers, make sure port 5985 (TCP) is open on the other nodes.
  • Командлет Set-AdfsSslCertificate предоставит субъекту адфссрв разрешения на чтение закрытым ключам SSL-сертификата. The Set-AdfsSslCertificate cmdlet will grant the adfssrv principal read permissions to the private keys of the SSL certificate. Этот участник представляет службу AD FS. This principal represents the AD FS service. Нет необходимости предоставлять учетной записи службы AD FS доступ на чтение закрытых ключей SSL-сертификата. It’s not necessary to grant the AD FS service account read access to the private keys of the SSL certificate.

Замена SSL-сертификата для AD FS, работающего в альтернативном режиме привязки TLS Replacing the SSL certificate for AD FS running in alternate TLS binding mode

При настройке в альтернативном режиме клиентской привязки TLS AD FS выполняет проверку подлинности сертификата устройства в порте 443 и проверку подлинности сертификата пользователя на порте 443, а также на другом имени узла. When configured in alternate client TLS binding mode, AD FS performs device certificate authentication on port 443 and user certificate authentication on port 443 as well, on a different hostname. Имя узла сертификата пользователя — это AD FS имя узла, предварительно заданное с помощью «цертаус», например «certauth.fs.contoso.com». The user certificate hostname is the AD FS hostname pre-pended with «certauth», for example «certauth.fs.contoso.com». В этом режиме используйте командлет PowerShell Set-Адфсалтернатетлсклиентбиндинг для управления SSL-сертификатом. In this mode, use the powershell cmdlet Set-AdfsAlternateTlsClientBinding to manage the SSL certificate. Это позволит управлять не только альтернативной привязкой клиента TLS, но и всеми другими привязками, для которых AD FS задает SSL-сертификат. This will manage not only the alternative client TLS binding but all other bindings on which AD FS sets the SSL certificate as well.

Читайте также:  How to download android to windows

Выполните инструкции, описанные ниже. Follow the steps below:

Сначала необходимо получить новый сертификат. First, you will need to obtain the new certificate. Обычно это делается путем отправки запроса подписи сертификата (CSR) сторонним поставщикам сертификатов. This is usually done by submitting a certificate signing request (CSR) to a third party, public certificate provider. Существует множество способов создания CSR, в том числе с компьютера под управлением Windows 7 или более поздней версии. There are a variety of ways to generate the CSR, including from a Windows 7 or higher PC. Поставщик должен иметь документацию для этого. Your vendor should have documentation for this.

После получения ответа от поставщика сертификатов импортируйте его в хранилище локального компьютера на каждом AD FS и на прокси-сервере. Once you get the response from your certificate provider, import it to the Local Machine store on each AD FS and Web Application Proxy server.

На сервере- источнике AD FS используйте следующий командлет для установки нового SSL-сертификата. On the primary AD FS server, use the following cmdlet to install the new SSL certificate

Отпечаток сертификата можно найти, выполнив следующую команду: The certificate thumbprint can be found by executing this command:

Дополнительные замечания Additional Notes

  • Командлет Set-Адфсалтернатетлсклиентбиндинг является командлетом с несколькими узлами. Это означает, что будет выполнено обновление только с первичного узла и всех узлов фермы. The Set-AdfsAlternateTlsClientBinding cmdlet is a multi-node cmdlet; this means it only has to run from the primary and all nodes in the farm will be updated.
  • Командлет Set-Адфсалтернатетлсклиентбиндинг должен выполняться только на сервере-источнике. The Set-AdfsAlternateTlsClientBinding cmdlet has to be run only on the primary server. Сервер первичного сервера должен работать под сервером 2016, и уровень поведения фермы должен быть повышен до 2016. The primary server has to be running Server 2016 and the Farm Behavior Level should be raised to 2016.
  • Командлет Set-Адфсалтернатетлсклиентбиндинг будет использовать удаленное взаимодействие PowerShell для настройки других серверов AD FS, убедитесь, что порт 5985 (TCP) открыт на других узлах. The Set-AdfsAlternateTlsClientBinding cmdlet will use PowerShell Remoting to configure the other AD FS servers, make sure port 5985 (TCP) is open on the other nodes.
  • Командлет Set-Адфсалтернатетлсклиентбиндинг предоставит субъекту адфссрв разрешения на чтение закрытым ключам SSL-сертификата. The Set-AdfsAlternateTlsClientBinding cmdlet will grant the adfssrv principal read permissions to the private keys of the SSL certificate. Этот участник представляет службу AD FS. This principal represents the AD FS service. Нет необходимости предоставлять учетной записи службы AD FS доступ на чтение закрытых ключей SSL-сертификата. It’s not necessary to grant the AD FS service account read access to the private keys of the SSL certificate.

Замена сертификата SSL для прокси веб-приложения Replacing the SSL certificate for the Web Application Proxy

Чтобы настроить привязку проверки подлинности сертификата по умолчанию или альтернативный режим привязки TLS клиента в WAP, можно использовать командлет Set-Вебаппликатионпроксисслцертификате. For configuring both the default certificate authentication binding or alternate client TLS binding mode on the WAP we can use the Set-WebApplicationProxySslCertificate cmdlet. Чтобы заменить сертификат SSL прокси-сервера веб – приложения на каждом прокси-сервере, используйте следующий командлет для установки нового сертификата SSL: To replace the Web Application Proxy SSL certificate, on each Web Application Proxy server use the following cmdlet to install the new SSL certificate:

Если приведенный выше командлет завершится сбоем, поскольку срок действия старого сертификата уже истек, перенастройте прокси-сервер с помощью следующих командлетов: If the above cmdlet fails because the old certificate has already expired, reconfigure the proxy using the following cmdlets:

Введите учетные данные пользователя домена, который является локальным администратором на AD FS сервере Enter the credentials of a domain user who is local administrator on the AD FS server

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