Альтернатива клиентских сертификатов в диалоговом окне выбор сертификата в windows

Обновлено: 04.07.2024

Чтобы обеспечить безопасную работу с сервером в Интернете, необходимо защитить канал передачи данных и не допустить несанкционированное подключение к сервису. Для этого используются цифровые сертификаты (электронная подпись), которые устанавливаются с обоих сторон:

  • на сервере
  • на клиентском компьютере

Серверный и клиентский сертификат

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

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

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

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

  • на сервере - серверный сертификат с закрытым ключом и клиентский с открытым ключом
  • на клиенте - клиентский сертификат с закрытым ключом и серверный с открытым ключом

Подключение к серверу, защищенному сертификатом с клиента, без сертификата будет невозможен. Подключение к незащищенному серверу с защищенного сертификатом клиента будет невозможно. Подключение к защищенному серверу с клиента защищенного сертификатом отличного от серверного будет невозможно.

Сертификаты приобретаются пользователями самостоятельно. Сертификаты должны быть выпущены для работы с алгоритмами Microsoft Crypto API:

  • Microsoft Base Cryptographic Provider v1.0
  • Microsoft Enhanced Cryptographic Provider v1.0
  • Microsoft Enhanced RSA and AES Cryptographic Provider
  • Microsoft Strong Cryptographic Provider

и иметь назначения: подпись (Sign) и шифрование (Exchange).

Доверие к сертификатам программа IT Audit не проверяет.

Порядок установки и использования сертификатов

  • Установить сертификаты в систему средствами Windows.
  • Выбрать режим использования сертификатов: "нет сертификатов", "единый сертификат" или "разные сертификаты".
  • Нажать на кнопку справа от поля Имя субъекта и выбрать требуемый сертификат из списка Доверенные лица (локальный компьютер).
  • Зажать клавишу Shift и нажать на кнопку для выбора сертификата из списка Личное (текущий пользователь).
  • Зажать клавишу Alt и нажать на кнопку для выбора сертификата из списка Доверенные лица (текущий пользователь).

На серверной стороне рекомендуется использовать сертификаты из списка Доверенные лица (локальный компьютер) или системный администратор может установить сертификат под пользователя, от имени которого будет исполняться служба сервиса.

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


etoken_auth_01

Далее добавим серверу роль AD CA (центр сертификации).

etoken_auth_02

Дополнительно установим Web службу для запроса сертификатов.

etoken_auth_03

Далее выбираем вариант для предприятия. Выбираем Корневой ЦС (если у нас это первый центр сертификации в домене)
Создаем новый закрытый ключ. Длину ключа можно оставить туже, а вот алгоритм хеширования лучше выбрать SHA2 (SHA256).

etoken_auth_04


Введем имя CA и выберем срок действия основного сертификата.
Остальные параметры оставляем по умолчанию и запускаем процесс установки.


После установки зайдем в оснастку центра сертификации и настроим права на шаблоны.

etoken_auth_07

Далее включим эти шаблоны.

И они появятся у нас в общем списке.

etoken_auth_09

Следующим шагом настроим групповые политики:
Первым делом расскажем всем компьютерам домена о корневом центре сертификации, для этого изменим Default Domain Policy.
Конфигурация компьютера -> Политики -> Конфигурация Windows -> Параметры безопасности -> Политики открытого ключа -> Доверенные корневые центры сертификации -> Импорт

etoken_auth_10


Выберем наш корневой сертификат, расположенный по пути: C:\Windows\System32\certsrv\CertEnroll. Закрываем Default Domain Policy.
На следующем шаге создадим политику для контейнера, в котором будут находится компьютеры с аутентификацией по токену (Смарт-карте).

etoken_auth_11

etoken_auth_12

etoken_auth_13

etoken_auth_15


Теперь пользователь Enrollment Agent может выписывать сертификаты для других пользователей. К примеру запросим сертификат для пользователя test. Для этого откроем консоль управления сертификатами certmgr.msc, т.к. через web интерфейс не получится записать сертификат на usb токен.
В этой консоли на папке личное сделаем запрос от имени другого пользователя

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

как открыть хранилище сертификатов в windows 7

Чтобы просмотреть сертификаты в Виндовс 7, заходим в ОС с правами администратора.

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

Командная строка выполнить Windows 7

Хранилище сертификатов Windows 7

Кликаем правой кнопкой мыши по сертификату открыть Windows 7

Способ 2: Панель управления

Пуск Панель управления Windows 7

Свойства обозревателя Windows 7

Свойства обозревателя содержание Сертификаты Windows 7

Список сертификатов просмотр Windows 7

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

date

02.11.2020

directory

PowerShell, Windows 10, Windows Server 2016

comments

комментариев 7

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

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

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

Get-Command -Module PKI

управление самоподписанными сертфикатми встроенным модулем powershell pki

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

Совет. Не забывайте также про возможность использования полноценных бесплатных SSL сертификатов от Let’s Encrypt. Пример, как выпустить SSL сертификат Let’s Encrypt и привязать его к сайту IIS.

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

New-SelfSignedCertificate - командлет для создания сертификата

Directory: Microsoft.PowerShell.Security\Certificate::LocalMachine\My
Thumbprint Subject

Если вы запустите эту команду в PowerShell без прав администратор, появится ошибка:

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

Как вы видите, в свойствах сертификата указано, что данный сертификат может использоваться для аутентификации клиентов (Client Authentication). Также он действителен и для аутентификации сервера (Server Authentication).

Самоподписанный сертифкат в разделе личных сертификатов

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

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

просмотр всех параметров самоподписанного сертфиката с помощью powershell

Примечание. Срок действия такого самоподписанного сертификата истечкает через 1 год с момента его создания. Можно задать другой срок действия сертификата с помощью атрибута –NotAfter.Чтобы выпустить сертификат на 3 года, выполните следующие команды:

Можно создать цепочку сертфикатов. Сначала создается корневой сертификат (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-PfxCertificate - экспорт сертификата в файл

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

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

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

установить cer/pfx сертификат с помощью powershell

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

импорт сертфиката в доверенные корневые сертфикаты компьютера

Можно создать сертификат и сразу импортировать его в доверенные корневые сертификаты компьютера командами:
$cert=New-SelfSignedCertificate …..
$certFile = Export-Certificate -Cert $cert -FilePath C:\certname.cer
Import-Certificate -CertStoreLocation Cert:\LocalMachine\AuthRoot -FilePath $certFile.FullName

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

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

Примечание. Утилита Makecert.exe, в отличии от командлета New-SelfSignedCertificate, не умеет создавать сертификаты с SAN.

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

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

Сертификат на несколько DNS имен

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

Ошибка UnknownError при подписывании PowerShell скрипта самоподписанным сертификатом

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.

сгенерировать самоподписанный сертификат в iis

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

привязать самоподписанный ssl сертфикат к сайту в IIS Manager

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

Читайте также: