Контроль, какой сертификат выбирается сетевой политикой NPS при автоматическом обновлении сертификата

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

Шаблон сертификата, на котором основан самозаверяющий сертификат, автоматически обновляет сертификат за 6 недель до истечения срока его действия. Чтобы смягчить эту проблему, я установил для себя напоминание о необходимости отредактировать политики NPS и выбрать обновленный сертификат. Но я ИТ-пожарный, и иногда пожары мешают мне выполнять рутинные задачи, даже важные.

Есть ли способ указать NPS использовать обновленный сертификат вместо того, чтобы выбирать какой-нибудь сертификат наугад?

2
задан 7 February 2017 в 22:55
2 ответа

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

  1. Вручную обновить самозаверяющий сертификат до сертификат будет автоматически продлен, затем
  2. Немедленно отредактируйте все затронутые сетевые политики NPS, чтобы использовать обновленный сертификат.
0
ответ дан 3 December 2019 в 14:21

Эта проблема мучил меня годами. Я думаю, что наконец-то нашел решение, связанное с изменением текста файла конфигурации ias.xml. Я написал функцию PS, которая заменяет отпечаток сертификата в файле xml отпечатком сертификата nps. Мы запускаем эту функцию на главном сервере, если дата файла конфигурации в System32\ias старше, чем дата notbefore сертификата. Мы также запускаем процедуру на каждом подчиненном сервере, с которым мы синхронизируем конфигурацию главного сервера перед импортом конфигурации. Мы используем PEAP MSCHAPv2, поэтому убедитесь, что отпечаток находится в том же месте в вашем файле конфигурации. Элемент xml с конфигурацией называется msEAPConfiguration. Все наши конфигурации PEAP имели длину 1728. Отпечаток сертификата начинается с индекса 72 и имеет длину 40 символов. Были некоторые с более короткой конфигурацией, но я их еще не исследовал.

function replace-certThumbprint {
    param (
        $srcNPSConfigPath, $newThumbprint
    )
    # read xml file for iteration
    [xml]$npsXmlFile = Get-Content -path $srcNPSConfigPath

    # read raw xml file for overwrite
    $rawXML = Get-Content -Path $srcNPSConfigPath -Raw

    # get eap config part of xml file
    $eapNodes = $npsXmlFile.getelementsbytagname("msEAPConfiguration")

    # find certificate thumbprint in nodes
    foreach ($node in $eapNodes) {
        # confirm node is 1728 char long
        if ($node.'#text'.Length -eq 1728) {
            # save original node text
            $origNode = $node.'#text'
            # get thumbprint from node
            $thumbprint = $node.'#text'.substring(72, 40)
            # replace thumbprint of old cert with new cert if not present
            if ($origNode.indexof($newThumbprint) -eq -1) {
                # node text does not contain new thumbprint
                # replace node text in raw xml file with new node text
                $rawXML = $rawXML -replace $origNode, ($origNode -replace $thumbprint, $newThumbprint)
            }
        }
        # $node | fl *
    }



    $rawXML | set-content -Path $srcNPSConfigPath -Force

}
1
ответ дан 18 May 2021 в 16:33

Теги

Похожие вопросы