Отсутствуют корневые сертификаты в Windows Server 2016 (новая установка)

В компании мы никогда особо не беспокоились о корневых сертификатах, и у нас сложилось впечатление, что это то, что управляется вместе с обновлениями Windows (и для этого есть WSUS), и все было хорошо.

Однако сегодня я заметил, что свежая установка Windows Server 2016 со всеми обновлениями, похоже, имеет только ОЧЕНЬ базовые корневые сертификаты, до такой степени, что я даже не могу открыть Google (в учетной записи о том, что они не доверяют их сертификату.)

(Я еще не проверял новую установку Windows 10 ...)

Меня это немного смущает, так как раньше этого не происходило. Либо мы внесли некоторые плохие изменения в наши объекты групповой политики (хотя я не могу придумать ничего, что могло бы иметь такой эффект), либо это то, что было недавно изменено? Как мне действовать, чтобы обеспечить беспрепятственный доступ к таким вещам, как Google? Нужно ли мне сейчас вручную добавлять доверенные сертификаты через объекты групповой политики?


Вот несколько снимков экрана, на которых показана ситуация при установке нового сервера.

SSL certificate error

General

Path

Cert list

2
задан 27 June 2019 в 17:15
2 ответа

Это нормальное и ожидаемое поведение. По умолчанию в доверенном корневом хранилище отображается только несколько необходимых сертификатов. Остальные (их около 300) устанавливаются по запросу, когда вы впервые сталкиваетесь с ними. Скрытая копия корневых сертификатов находится в Crypt32.dll и в Центре обновления Windows. Не о чем беспокоиться.

обновление:

Я провел внутреннюю проверку и обнаружил, что запрошенный корень встроен в файл crypt32.dll . Вот код PowerShell, вы можете извлечь встроенные сертификаты из этой dll и найти ожидаемый корень:

$signature = @"
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern IntPtr LoadLibraryEx(
    String lpFileName,
    IntPtr hFile,
    UInt32 dwFlags
);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern IntPtr FindResource(
    IntPtr hModule,
    int lpID,
    string lpType
);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern uint SizeofResource(
    IntPtr hModule,
    IntPtr hResInfo
);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern IntPtr LoadResource(
    IntPtr hModule,
    IntPtr hResInfo
);
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern bool FreeLibrary(
    IntPtr hModule
);
"@
Add-Type -MemberDefinition $signature -Namespace PKI -Name Kernel32
$path = $Env:SystemRoot + "\System32\crypt32.dll"
$hModule = [PKI.Kernel32]::LoadLibraryEx($path,[IntPtr]::Zero,0x2)
$hResInfo = [PKI.Kernel32]::FindResource($hModule,1010,"AUTHROOTS")
$size = [PKI.Kernel32]::SizeOfResource($hModule, $hResInfo)
$resource = [PKI.Kernel32]::LoadResource($hModule, $hResInfo)
$bytes = New-Object byte[] -ArgumentList $size
[Runtime.InteropServices.Marshal]::Copy($resource, $bytes, 0, $size)
$AUTHROOTS = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
$AUTHROOTS.Import($bytes)
[void][PKI.Kernel32]::FreeLibrary($hModule)
$AUTHROOTS | ?{$_.thumbprint -eq "75E0ABB6138512271C04F85FDDDE38E4B7242EFE"}

просто скопируйте и вставьте этот код в консоль PS и проверьте, возвращается ли какой-либо объект /

4
ответ дан 3 December 2019 в 09:02

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

https://docs.microsoft.com/en-us/previous- версии / windows / it-pro / windows-server-2012-r2-and-2012 / dn265983 (v% 3Dws.11)

http://woshub.com/updating-trusted-root-certificates-in-windows -10 /

Key: HKLM\Software\Policies\Microsoft\SystemCertificates\AuthRoot

Value: DisableRootAutoUpdate
3
ответ дан 3 December 2019 в 09:02

Теги

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