пятница, 15 января 2016 г.

Ошибка извлечения стороннего корневого списка из CAB-файла автоматического обновления сертификатов Windows службы CAPI2

Если компьютер не имеет прямого доступа в интернет, вы можете обнаружить ошибку в журнале приложений с кодом 4107:

Ошибка извлечения стороннего корневого списка из CAB-файла автоматического обновления на "http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab" с ошибкой Недопустимые данные.

Обычно это связана с тем, что компьютер не может корректно обновить корневые сертификаты через сайт "windowsupdate.com".

Возможные варианты решения проблемы:
1. Снять ограничения на прокси сервере или внешнем брандмауэре, через которые осуществляется выход в интернет.

2. В случае полной изоляции среды функционирования ОС Windows можно просто отключить обновление сертификатов двумя способами:
Первый - в реестре создайте следующие параметры:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\SystemCertificates\AuthRoot] "DisableRootAutoUpdate"=dword:00000001
"EnableDisallowedCertAutoUpdate"=dword:00000000

Или второй - с помощью групповых политик домена Windows. Для этого импортируйте следующие .adm шаблоны:

CLASS MACHINE
CATEGORY !!SystemCertificates
    POLICY !!DisableRootAutoUpdate    
       EXPLAIN !!Certificates_config
       VALUENAME "DisableRootAutoUpdate"
       VALUEON NUMERIC 0
          VALUEOFF NUMERIC 1
       KEYNAME "Software\Policies\Microsoft\SystemCertificates\AuthRoot"
    END POLICY
END CATEGORY
[strings]
DisableRootAutoUpdate="Auto Root Update"
Certificates_config="By default automatic updating of the trusted CTL is enabled. To disable the automatic updating trusted CTLe, select Disabled."
SystemCertificates="Windows AutoUpdate Settings"

CLASS MACHINE
CATEGORY !!SystemCertificates
    POLICY !!EnableDisallowedCertAutoUpdate        
       EXPLAIN !!Certificates_config
       VALUENAME "EnableDisallowedCertAutoUpdate"
       VALUEON NUMERIC 1
          VALUEOFF NUMERIC 0
       KEYNAME "Software\Policies\Microsoft\SystemCertificates\AuthRoot"
    END POLICY
END CATEGORY
[strings]
EnableDisallowedCertAutoUpdate="Untrusted CTL Automatic Update"
Certificates_config="By default untrusted CTL automatic update is enabled. To disable trusted CTL update, select Disabled."
SystemCertificates="Windows AutoUpdate Settings"

3. Перенаправить на локальный URL-адрес автоматическое обновление сертификатов Microsoft. Для этого понадобится один сервер с полноценным выходом в интернет, который будет выкачивать списки сертификатов и предоставлять их во внутреннюю сеть. Загрузка выполняется с помощью команды "Certutil -f -syncWithWU path", запущенной с повышенными привилегиями, где path - это путь, куда будет выгружена информация о сертификатах для дальнейшего распространения. Далее файлы можно просто расшарить средствами Windows или предоставить доступ по HTTP через IIS, Apache и т.п. На клиентских ОС производим настройку на сервер в реестре:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\AuthRoot\AutoUpdate]
"RootDirURL"="FILE://\\server_with_certificates\share\"

или

"RootDirURL"="HTTP://server_with_certificates/share"

В доменной среде удобнее выполнить настройку с помощью групповой политики. Используйте следующий .adm шаблон:

CLASS MACHINE
CATEGORY !!SystemCertificates
    KEYNAME "Software\Microsoft\SystemCertificates\AuthRoot\AutoUpdate"
    POLICY !!RootDirURL
       EXPLAIN !!RootDirURL_help
       PART !!RootDirURL EDITTEXT
             VALUENAME "RootDirURL"
       END PART
    END POLICY
END CATEGORY
[strings]
RootDirURL="URL address to be used instead of default ctldl.windowsupdate.com"
RootDirURL_help="Enter a FILE or HTTP URL to use as the download location of the CTL files."
SystemCertificates="Windows AutoUpdate Settings"

Выберите из вышеописанных способов наиболее подходящий для вашей среды.

6 комментариев:

  1. Очень простое решение этой ошибки через "Панель управления" опубликовано https://eeehh.livejournal.com/657.html

    ОтветитьУдалить
  2. Можно по подробнее про первый способ.

    ОтветитьУдалить
  3. Помогло -
    [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\SystemCertificates\AuthRoot] "DisableRootAutoUpdate"=dword:00000001
    "EnableDisallowedCertAutoUpdate"=dword:00000000

    ОтветитьУдалить
  4. папка /AuthRoot/
    правой кнопкой создать параметр DWORD 32 бита или 64
    у меня 32 битная система
    имя 1 го параметра DisableRootAutoUpdate значение 00000001
    имя 2 го параметра EnableDisallowedCertAutoUpdate значение 00000000

    ОтветитьУдалить