Ssl windows 10 включить

Включить SSL для всех клиентов, которые взаимодействуют с веб-сайтом в IIS

В этой статье описывается, как включить SSL для всех клиентов, которые взаимодействуют с веб-сайтом в Microsoft IIS (IIS).

Исходная версия продукта: Internet Information Services
Исходный номер КБ: 298805

Аннотация

Эта статья содержит следующие разделы:

  • Сведения о том, как настроить и включить сертификаты сервера, чтобы клиенты могли быть уверены в том, что ваш веб-сайт действителен и что любые отправляемые им сведения остаются конфиденциальными и конфиденциальными.
  • Сведения о том, как использовать сторонние сертификаты для использования SSL, а также общий обзор процесса, используемого для создания запроса подписи сертификата (CSR), который используется для получения стороннее сертификата.
  • Как включить SSL-подключение для веб-сайта.
  • Как применить протокол SSL для всех подключений и установить требуемую длину шифрования между клиентами и веб-сайтом.

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

В этой статье предполагается, что для проверки подлинности веб-сервера используется сторонний ЦС.

Чтобы включить проверку сертификата SSL Server и обеспечить уровень безопасности, необходимый вашим клиентам, необходимо получить сертификат от стороного ЦС. Сертификаты, выда которыми выданы вашей организации сторонним ЦС, обычно привязаны к веб-серверу и, в частности, к веб-сайту, к которому необходимо привязать SSL. Вы можете создать собственный сертификат с сервером IIS, но в этом случае ваши клиенты должны неявно доверять вам как к сертификату.

Статья предполагает следующее:

  • Вы установили IIS.
  • Создан и опубликован веб-сайт, который необходимо защитить с помощью SSL.

Получение сертификата

Чтобы начать процесс получения сертификата, необходимо создать CSR. Это можно сделать с помощью консоли управления IIS; Поэтому перед созданием CSR необходимо установить IIS. CSR — это, по сути, сертификат, который создается на сервере, который проверяет сведения о сервере, относящаяся к компьютеру, при запросе сертификата у стороне ЦС. CSR — это просто зашифрованное текстовое сообщение, зашифрованное парой открытого и закрытого ключей.

Как правило, в CSR, который вы создаете, включаются следующие сведения о компьютере:

  • Организация
  • Подразделение
  • Страна
  • Состояние
  • Locality
  • Общее имя

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

Создание CSR

Доступ к консоли управления (MMC) IIS. Для этого щелкните правой кнопкой мыши «Мой компьютер» и выберите «Управление». Откроется консоль управления компьютером. Разорите раздел «Службы и приложения». Найдите IIS и разйдите консоль IIS.

Выберите конкретный веб-сайт, на который необходимо установить сертификат сервера. Щелкните сайт правой кнопкой мыши и выберите «Свойства».

Читайте также:  Windows home theatre software

Выберите вкладку «Безопасность каталога». В разделе «Безопасная связь» выберите сертификат сервера. Запускается мастер сертификатов веб-сервера. Нажмите кнопку Далее.

Выберите «Создать новый сертификат» и «Далее».

Выберите «Подготовить запрос» сейчас, но отправьте его позже и выберите «Далее».

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

При генерации CSR необходимо указать длину бита. Длина бита ключа шифрования определяет силу зашифрованного сертификата, отправляемого в сторонний ЦС. Чем выше длина бита, тем надкрепнее шифрование. Большинство сторонних ЦС предпочитают не менее 1024 бит.

В разделе «Сведения об организации» введите сведения об организации и подразделении. Это должно быть точным, так как вы представляете эти учетные данные стороне ЦС и должны соответствовать их лицензированию сертификата. Выберите «Далее», чтобы получить доступ к разделу «Общее имя сайта».

Раздел «Общее имя сайта» отвечает за привязку сертификата к веб-сайту. Для SSL-сертификатов введите имя хост-компьютера с именем домена. Для серверов интрасети можно использовать netBIOS-имя компьютера, на который размещен сайт. Выберите «Далее», чтобы получить доступ к географическим данным.

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

Сохраните файл в TXT-файле.

Подтвердите сведения о запросе. Выберите «Далее», чтобы завершить работу, и выйдите из мастера сертификатов веб-сервера.

Запрос сертификата

Существует несколько способов отправки запроса. Обратитесь к поставщику сертификатов по вашему выбору, чтобы использовать метод и определить оптимальный уровень сертификата для ваших потребностей. В зависимости от метода, выбранного для отправки запроса в ЦС, вы можете отправить CSR-файл с шага 10 в разделе «Создание CSR» или в файл может потребоваться вслать содержимое этого файла в запрос. Этот файл будет зашифрован и будет содержать заглавный и footer для содержимого. При запросе сертификата необходимо включить и заглавный, и footer. Ваш CSR должен иметь следующий сходство:

Установка сертификата

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

Чтобы установить сертификат, выполните следующие действия.

  1. Скачайте или скопируйте сертификат, полученный из ЦС, на веб-сервер.
  2. Откройте MMC IIS, как описано в разделе «Создание CSR».
  3. Доступ к диалоговом окну «Свойства» для веб-сайта, на котором устанавливается сертификат.
  4. Выберите вкладку «Безопасность каталога» и выберите сертификат сервера. Запускается мастер сертификатов веб-сервера. Нажмите кнопку Далее.
  5. Выберите «Обработка ожидающих запросов» и установите сертификат, а затем выберите «Далее».
  6. Перейдите к расположению сертификата, сохраненного на шаге 1. Дважды выберите «Далее» и «Готово».

Принудительное подключение SSL

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

  1. В консоли управления компьютером щелкните правой кнопкой мыши веб-сайт, на котором необходимо принудительно применить SSL, и выберите «Свойства».
  2. Выберите вкладку «Веб-сайт». В разделе «Идентификация веб-сайта» убедитесь, что поле порта SSL заполнено числом 443.
  3. Выберите Дополнительно. Вы должны увидеть два поля. IP-адрес и порт веб-сайта уже должны быть указаны в поле «Несколько удостоверений» для этого веб-сайта. В поле «Несколько удостоверений SSL» для этого веб-сайта выберите «Добавить», если порт 443 еще не указан. Выберите IP-адрес сервера и введите числовые значения 443 в поле порта SSL. Нажмите OK.
Читайте также:  Windows для планшета переключение

Теперь, когда порт 443 включен, можно применять SSL-подключения. Для этого выполните следующие действия:

Выберите вкладку «Безопасность каталога». В разделе «Безопасная связь» теперь доступна правка. Нажмите кнопку Изменить.

Выберите «Требовать безопасный канал (SSL)«.

Если указать 128-битное шифрование, клиенты, которые используют 40- или 56-битный браузер, не смогут взаимодействовать с сайтом, если не обновят уровень шифрования.

Откройте браузер и попробуйте подключиться к веб-серверу по стандартному http:// протоколу. Если выполняется принудительное применение SSL, вы получите следующее сообщение об ошибке:

Страницу необходимо просмотреть по безопасному каналу
Страница, которая вы пытаетесь просмотреть, требует использования https в адресе.
Попробуйте следующее: попробуйте еще раз, https:// в начале адреса, к который вы пытаетесь связаться. HTTP 403.4 — запрещено: для SSL требуются службы Internet Information Services
Техническая информация (для сотрудников службы поддержки): эта ошибка указывает, что страница, к которую вы пытаетесь получить доступ, защищена с помощью SSL.

Теперь вы можете подключаться к веб-сайту только с помощью https:// протокола.

Настройка протоколов TLS на Windows Server

Написать эту статью подоткнул тот факт, что Windows Server 2016, установленный из коробки, почему-то не имеел TLS протокол, включенный как основный по умолчанию, в то время как SSL3.0 был включен. Приводит это к разным последствиям, как для безопасности, так и для функционирования различных сервисов и приложений.

Проблемы версий протоколов SSL и TLS и совместимости приложений

Для начала рассмотрим проблемы связанные с версиями SSL протоколов:

  • SSL v2 небезопасен, устарел и не рекомендуется для использования. См. атаку DROWN по этому протоколу.
  • SSL v3 небезопасен и устаревший инструмент. См. атаку POODLE.
  • TLS v1.0 также является устаревшим протоколом, но на практике он все же оказывается необходим. Его основная слабость (BEAST) была смягчена в современных браузерах.
  • TLS v1.1 и TLS v1.2 оба не имеют известных проблем с безопасностью, но только v1.2 предоставляет современные криптографические алгоритмы.

SSL 2.0, SSL 3.0 и TLS 1.0 настоятельно рекомендуется отключить, так как большинство стандартов безопасности их уже давно не поддерживают (например, PCI DSS 3.1). Рекомендуемые протоколы TLS v1.1 и TLS v1.2 с актуальными алгоритмами шифрование и снятия хэшей.

Но и это оказывается не полной правдой. Дело в том, что использование протоколов зависит не только от системных настроек, но и от того, как написаны приложения. Например, я выяснил, что .NET приложения используют свои собственные настройки безопасности. Также известно, что если включить поддержку TLS 1.2 на SQL Server (например, применив патч https://support.microsoft.com/en-us/help/3135244/tls-1-2-support-for-microsoft-sql-server), установленный на Windows Server 2012, то приложения .NET и JAVA потеряют возможность подключаться к SQL.

Также давно известна проблема с вэб приложениями, написанными на базе интерфейса WinHTTP API. После включения TLS 1.1/1.2 они также перестают подключаться.

Службы IIS и ADFS при этом прекрасно используют новые протоколы, следуя системным настройкам. Более того, к сервисам Azure вы не сможете подключиться через TLS 1.2, но при этом, как выяснилось, Powershell даже в Windows Server 2016 использует SSL3.0 и TLS 1.0, несмотря на то, что согласно системной настройке они отключены.

Читайте также:  Open windows run box

Как правильно настроить TLS для разного типа приложений?

Начнем с того, что для всего есть свои реестровые ключи, однако нужно точно понимать, какой тип приложения вы хотите настроить, чтобы избежать проблем. Начну с того, что полный список доступных системных ключей в Windows 10/Windows Server 2016/2019 доступен по ссылке https://docs.microsoft.com/ru-ru/windows-server/security/tls/tls-registry-settings. Изменяя их, вы можете настроить IIS, ADFS и прочие службы. Однако, эти ключи не влияют на работу приложений .NET (и в частности, Powershell) и WinHTTP!

В чем же дело? Дело в библиотеках. IIS и ADFS используют Schannel — поставщик поддержки безопасности (SSP), реализующий стандартные протоколы проверки подлинности SSL, TLS и DTLS Internet. Интерфейс поставщика поддержки безопасности (SSPI) является интерфейсом API, используемым системами Windows для выполнения функций, связанных с безопасностью, включая проверку подлинности. В Windows все функции SSPI выполняет библиотека Schannel.dll, в которой реализованы все протоколы и наборы шифрования.

Итак, ветки реестра, которые нас интересуют:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols — включение и отключение протоколов для Schannel.dll, как клиентских, так и серверных. Для каждого протокола — своя ветка;
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers — здесь можно изменить список и порядок просмотра (это важно!) наборов шифрования;
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp — в параметре DefaultSecureProtocols настраиваются протоколы для приложений на WinHttp API;
  • HKEY_LOCAL_MACHINE\CurrentControlSet\Control\Cryptography\ECCParameters — настройка эллиптических кривых для криптографии;
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\MD5 — отключение MD5 шифрования для маркеров безопасности.

Теперь пройдем по конкретным примерам и настройкам.

Отключение SSL и TLS 1.0 протоколов на системном в Schannel подробно описано в документации Microsoft. Отключить небезопасные можно как через реестр, так и с помощью Powershell.

В этой же статье ниже описано, как отключить небезопасные алгоритмы шифрования, такие как RC4.

Отключить небезопасные наборы шифрования (cipher suites) можно через параметр Functions в ключе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002 .

Этот параметр является многострочным текстовым значением, который просто содержит построчный список наборов (один на строку). Удалите ненужные строки.

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

Ну и наконец, для управления доступными наборами появились командлеты Powershell. Например, с помощью Disable-TlsCipherSuite вы можете отключить неугодный набор.

Отключение SSL для Powershell и других .NET приложений

Как я уже писал, системные настройки выше не влияют на Powershell сессии. Проверить, какие протоколы сейчас активны в вашей Powershell сессии, можно выполнив команду

Если в выводе команды увидите ssl30, tls, то их надо отключить.

Для этого в Windows Srver 2012 / Windows 2016 используйте ключ реестра

С помощью самого Powershell это можно изменить одной командой:

New-ItemProperty -path ‘HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319’ -name ‘SchUseStrongCrypto’ -value ‘1’ -PropertyType ‘DWord’ -Force | Out-Null

Включение TLS 1.2 для WinHTTP

Если коротко, то в ключе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp нужно добавить параметр DefaultSecureProtocols, который в 16-ричном виде будет содержать сумму значений всех протоколов, которые необходимо включить. Например, для включения TLS 1.1 и 1.2 надо добавить значение 0x00000A00, которое будет суммой значений TLS 1.1 (0×00000200) и TLS 1.2 (0×00000800).

Готовый патч от Microsoft для исправления этого также можно скачать по ссылке KB3140245

Настройка с помощью IISCrypto

IISCrypto — это бесплатная утилита, не требующая установки, которая позволяет включить/выключить многие настройки Schannel через графический интерфейс, .NET и WinHTTP она не настраивает.

Скачать её можно с сайта разработчика без регистрации.

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