Поделиться через


Включение поддержки HTTPS для подключенного кэша Майкрософт в Windows

В этой статье содержатся инструкции по включению поддержки HTTPS на узлах Microsoft Connected Cache для предприятий и образовательных учреждений, работающих на хост-компьютере Windows.

Процесс установки требует создания запроса подписи сертификата (CSR) на хост-компьютере, подписывания CSR с помощью корпоративного или общедоступного PKI, а затем импорта обратно на хост-компьютер.

Предварительные условия

Перед настройкой функций HTTPS убедитесь, что выполнены следующие требования:

  • Узел кэша находится в общедоступной версии программного обеспечения

    1. Откройте портал Azure и перейдите к ресурсу Connected Cache for Enterprise, в котором размещаются узлы кэша.
    2. В разделе Управление узлами кэша найдите узел кэша, на котором необходимо включить ПРОТОКОЛ HTTPS.
    3. Убедитесь, что узел находится в общедоступной версии. В столбце Перенесено должно отображаться значение "Да" или "Н/Д".
    4. Если нет общедоступной версии ("Нет" в столбце Перенесено ), выберите узел кэша, перейдите на вкладку Развертывание и следуйте инструкциям по повторному развертыванию подключенного кэша.
  • Доступ к центру сертификации (ЦС)

    Вам потребуется доступ к корпоративной PKI или общедоступному ЦС. При использовании корпоративной PKI проверка требования вашей организации к отправке CSR в ЦС.

  • Методы подключения клиента документирования

    Обратите внимание на IP-адрес или имя узла (FQDN), которые клиенты используют для подключения к серверу подключенного кэша. Это значение будет использоваться в качестве входных данных альтернативного имени субъекта (SAN) во время создания CSR.

  • Обеспечение доступности порта 443

    Чтобы установить HTTPS-подключение к подключенному кэшу, на хост-компьютере должен быть доступен порт 443. Выполните следующую команду, чтобы проверка:

      netstat -an | findstr :443
    
    Пример вывода Значение
    TCP 0.0.0.0:443 0.0.0:0 LISTENING Порт 443 открыт и прослушивает входящие подключения. Продолжите настройку HTTPS.
    Нет выходных данных Порт 443 не используется или не прослушивается. Продолжите настройку HTTPS.
    TCP [ваш IP-адрес]:443 [удаленный IP-адрес]:[порт] УСТАНОВЛЕНО Порт 443 активно используется в подключении. Прежде чем подключенный кэш сможет использовать порт 443, необходимо остановить конфликтующую службу.
  • Проверка конфигурации корпоративного прокси-сервера

    Если брандмауэр или корпоративный прокси-сервер перехватывает трафик HTTPS на сервер подключенного кэша (например, через проверку TLS), проверка сертификата всегда завершается ошибкой независимо от конфигурации сертификата.

Дополнительные сведения о любых предварительных запросах см. на странице справочника по HTTPS в Windows.

Создание запроса на подпись сертификата (CSR)

Важно.

Каждому узлу кэша требуется собственный CSR или сертификат (не может предоставить общий доступ):

  • Используйте согласованное именование: mcc-node1.company.com, mcc-node2.company.com и т. д.
  • Документ, к которому относится сертификат, к какому узлу
  • Сертификаты с подстановочными знаками не будут работать. CSR/сертификат, используемый для https-подключения к подключенном кэшу, уникальным образом привязан к каждому узлу кэша в целях безопасности.
  1. Откройте PowerShell от имени администратора и перейдите к папке Connected Cache, содержащей скрипты PowerShell.

    Выполните следующую команду, чтобы перейти в эту папку скриптов подключенного кэша:

       cd (deliveryoptimization-cli mcc-get-scripts-path)
    
  2. Настройте параметры для generateCsr.ps1 и запустите скрипт с указанными значениями.

    Базовый синтаксис

       .\generateCsr.ps1 [Required Parameters] [Subject Parameters] [SAN Parameters]
    

    Обязательные параметры

    Параметр Описание
    -algo Алгоритм сертификата: RSA, EC, ED25519или ED448
    -keySizeOrCurve Для RSA: размер ключа (2048, 3072, 4096). Для EC: имя кривой (prime256v1, secp384r1). Для ED25519 и ED448: размер ключа не требуется.
    -csrName Имя, требуемое для CSR-файла
    -RunTimeAccountName Учетная запись, которая запускает программное обеспечение подключенного кэша. Это должна быть переменная PowerShell, содержащая имя пользователя учетной записи, которую вы планируете назначить учетной записью среды выполнения подключенного кэша. Например, $User = "LocalMachineName\Username" для локальной учетной записи пользователя. Если вы используете групповую управляемую учетную запись службы (gMSA), она должна быть отформатирована как "Domain\Username$".
    -mccLocalAccountCredential Объект учетных данных PowerShell для учетной записи среды выполнения подключенного кэша. Это необходимо, только если вы используете учетную запись локального пользователя, учетную запись пользователя домена или учетную запись службы. Команду $myLocalAccountCredential = Get-Credential можно использовать для постановки в очередь графического пользовательского интерфейса получения учетных данных.

    Примечание.

    При использовании учетной записи среды выполнения gMSA используйте параметр -RunTimeAccount вместо -RunTimeAccountName.

    Это несоответствие будет исправлено в следующем выпуске установщика Windows.

    Параметры темы

    Параметр Обязательный Описание Пример
    -subjectCommonName Да Общее имя сертификата "localhost", "example.com"
    -subjectCountry Нет Двухбуквенный код страны "US", "CA", "GB"
    -subjectState Нет Область, край "WA", "TX", "Ontario"
    -subjectOrg Нет Название организации "MyCompany", "ACME Corp"

    Warning

    Конфигурация SAN имеет решающее значение для проверки сертификата. Сертификат должен точно соответствовать способу подключения клиентов к подключенному кэшу. В противном случае клиенты обходят узел кэша.

    Например, если клиенты подключаются по IP-адресу 192.168.1.100 , но сертификат имеет только , проверка сертификата завершается -sanDns "server.local"ошибкой.

    Альтернативные имена субъектов (требуется по крайней мере одно)

    Параметр Описание Пример
    -sanDns DNS-имена (разделенные запятыми) "localhost,example.com,api.example.com"
    -sanIp IP-адреса (разделенные запятыми) "127.0.0.1,192.168.1.100"
    -sanUri URI (разделенные запятыми) "https://example.com,http://localhost"
    -sanEmail адреса Email (разделенные запятыми) "admin@example.com,user@domain.com"
    -sanRid Зарегистрированные идентификаторы (разделенные запятыми)
    -sanDirName Имена каталогов (разделенные запятыми)
    -sanOtherName Другие имена (разделенные запятыми)

    Дополнительные сведения и примеры на основе сценариев о параметрах скрипта CSR см. в справочнике по HTTPS в Windows.

  3. Убедитесь, что процесс создания CSR успешно завершен.

    При возникновении ошибок найдите файл метки GenerateCsr.log времени в папке, указанной в выходных данных скрипта. Найдите строку выходных данных, которая начинается с "Проверьте журналы на наличие подробных сведений об ошибке:" Каталог заканчивается на (...\Certificates\logs).

    • Формат файла: GenerateCsr_YYYYMMDD-HHMMSS.log
    • Пример: GenerateCsr_20251201_143022.log — это файл, созданный 1 декабря 2025 г. в 14:30:22
  4. Найдите созданный CSR-файл в папке Certificates на хост-компьютере и при необходимости перенесите его.

    Расположение папки Certificates указывается в выходных данных скрипта, начиная с "CSR-файл, созданный в:...". Каталог заканчивается на (...\Certificates\certs).

Подписывание CSR

  1. Выберите общедоступный или корпоративный центр сертификации (ЦС) для подписания CSR

    Важно.

    Подпись ЦС должна соответствовать корневому сертификату в доверенном корневом хранилище клиента.

    Большинство клиентов используют свою корпоративную инфраструктуру PKI для подписания csR. Если вам нужно использовать общедоступный ЦС, рассмотрите следующие ресурсы:

  2. Отправьте CSR в выбранный ЦС и сохраните подписанный сертификат.

    Подписанный сертификат должен иметь формат CRT с кодировкой X.509. Если ЦС предоставляет другие форматы, проверка ссылку HTTPS в Windows о том, как преобразовать в формат CRT.

    Примечание.

    Подключенный кэш в настоящее время не поддерживает защищенные паролем форматы (PFX, P12, P7B). Поддержка этих сертификатов будет добавлена в ближайшее время в рамках стратегии автоматизации сертификатов.

  3. Убедитесь, что подписанный сертификат имеет правильный формат.

    Подтвердите кодировку PEM:

    Get-Content "xxxx.crt" | Select-String "BEGIN CERTIFICATE"
    

    Ожидаемые успешные выходные данные:

    -----BEGIN CERTIFICATE-----
    
  4. Переместите подписанный сертификат в папку Сертификаты на хост-компьютере Windows.

    Это будет та же папка, в которой вы изначально нашли CSR после ее создания: (...\Certificates\certs).

    Предостережение

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

Импорт подписанного TLS-сертификата

Примечание.

В importCert настоящее время скрипт не поддерживает:

  • Кэшировать узлы, работающие в Windows Server 2022 или Windows Server 2025, с учетной записью среды выполнения gMSA.
  • Параметр -RunTimeAccountName при использовании gMSA в поддерживаемых версиях Windows (вместо этого используйте -RunTimeAccount ).

Обе проблемы будут устранены в следующем выпуске установщика Windows.

  1. Откройте PowerShell от имени администратора и перейдите к папке Connected Cache, содержащей скрипты PowerShell.

  2. Настройте параметры для importCert.ps1 и запустите скрипт с указанными значениями.

    Базовый синтаксис

      .\importCert.ps1 [Required Parameters]
    

    Обязательные параметры

    Параметр Описание
    -certName Полное имя файла подписанного TLS-сертификата (с расширением CRT или без нее)
    -RunTimeAccountName Учетная запись, которая запускает программное обеспечение подключенного кэша. Это должна быть переменная PowerShell, содержащая имя пользователя учетной записи, которую вы планируете назначить учетной записью среды выполнения подключенного кэша. Например, $User = "LocalMachineName\Username" для локальной учетной записи пользователя. Если вы используете групповую управляемую учетную запись службы (gMSA), она должна быть отформатирована как "Domain\Username$".
    -mccLocalAccountCredential Объект учетных данных PowerShell для учетной записи среды выполнения подключенного кэша. Это необходимо, только если вы используете учетную запись локального пользователя, учетную запись пользователя домена или учетную запись службы. Например, $myLocalAccountCredential = Get-Credential.

    Пример

      .\importCert.ps1 `
        -RunTimeAccountName $myLocalAccountCredential.Username `
        -LocalAccountCredential $myLocalAccountCredential `
        -certName "myTlsCert.crt"
    
  3. Убедитесь, что процесс импорта успешно завершен.

    При возникновении ошибок найдите файл метки ImportCert.log времени в папке, указанной в выходных данных скрипта. Найдите строку выходных данных, которая начинается с "Вы можете найти журналы здесь: ..."

    • Формат файла: ImportCert_YYYYMMDD-HHMMSS.log
    • Пример: ImportCert_20251201_143022.log — это файл, созданный 1 декабря 2025 г. в 14:30:22
  4. Убедитесь, что подключенный кэш доступен для внешних клиентов через порт 443.

    Примечание.

    Еще раз убедитесь, что порт 443 доступен, прежде чем настраивать перенаправление портов: netstat -an | findstr :443

    Перенаправление трафика через порт 443

    Используйте следующую команду для моста трафика с главного компьютера Windows в контейнер подключенного кэша:

     $ipFilePath = Join-Path ([System.Environment]::GetEnvironmentVariable("MCC_INSTALLATION_FOLDER", "Machine")) "wslIp.txt"
     $ipAddress = (Get-Content $ipFilePath | Select-Object -First 1).Trim()
     netsh interface portproxy add v4tov4 listenport=443 listenaddress=0.0.0.0 connectport=443 connectaddress=$ipAddress
    

    Это настраивает прокси-сервер порта, чтобы входящий трафик через порт 443 перенаправлялся на внутренний IP-адрес контейнера.

    Откройте порт 443 в брандмауэре

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

     [void](New-NetFirewallRule -DisplayName "WSL2 Port Bridge (HTTPS)" -Direction Inbound -Action Allow -Protocol TCP -LocalPort "443")
     [void](New-NetFirewallRule -DisplayName "WSL2 Port Bridge (HTTPS)" -Direction Outbound -Action Allow -Protocol TCP -LocalPort "443")
    

Инструкции по дальнейшей проверке импорта сертификата см. на странице проверки HTTPS в Windows.

Отключение поддержки HTTPS

Если необходимо отменить изменения подключенного кэша к обмену данными только по ПРОТОКОЛу HTTP, выполните следующие действия. Этот процесс не удаляет ничего из папки Certificates, включая CSR-файлы, сертификаты и журналы.

  1. Откройте PowerShell от имени администратора и перейдите в папку Скрипты PowerShell.

  2. Настройте параметры для disableTls.ps1 и запустите скрипт с разделенными значениями.

    Базовый синтаксис

      .\disableTls.ps1 [Required Parameters]
    

    Обязательные параметры

    Параметр Описание
    -RunTimeAccountName Учетная запись, которая запускает программное обеспечение подключенного кэша. Это должна быть переменная PowerShell, содержащая имя пользователя учетной записи, которую вы планируете назначить учетной записью среды выполнения подключенного кэша. Например, $User = "LocalMachineName\Username" для локальной учетной записи пользователя. Если вы используете групповую управляемую учетную запись службы (gMSA), она должна быть отформатирована как "Domain\Username$".
    -mccLocalAccountCredential Объект учетных данных PowerShell для учетной записи среды выполнения подключенного кэша. Это необходимо, только если вы используете учетную запись локального пользователя, учетную запись пользователя домена или учетную запись службы. Например, $myLocalAccountCredential = Get-Credential.

    Примечание.

    При использовании gMSA используйте параметр -RunTimeAccount вместо -RunTimeAccountName. Это несоответствие будет исправлено в скриптах в ближайшее время.

    Пример

      .\disableTls.ps1 `
        -RunTimeAccountName $myLocalAccountCredential.Username `
        -LocalAccountCredential $myLocalAccountCredential `
    
  3. Убедитесь, что процесс отключения успешно завершен.

  4. После отключения HTTPS HTTP-запросы должны работать, а HTTPS-запросы — сбоем. Инструкции по тестированию см. на странице проверки HTTPS в Windows .

Дальнейшие действия