Udostępnij za pośrednictwem


Jak rozszerzyć maksymalny limit rozmiaru rozszerzenia w usługach AD CS

Ten artykuł pomaga rozwiązać problem, w którym usługi certyfikatów Active Directory (AD CS) dają błąd podczas próby wystawienia certyfikatów z ponad 4 kilobajtami (KB) rozszerzeń rozmiaru.

Oryginalny numer KB: 5017242

Ten komunikat o błędzie może również zostać wyświetlony w dzienniku certsrv:

CertSrv: Field length is greater than maximum 0xc80005e2 (ESE: -1506 JET_errColumnTooBig)

Uwaga 16.

Rejestrowanie Certsrv pomaga określić przyczynę błędu. Aby uzyskać więcej informacji na temat włączania rejestrowania certsrv, zobacz Usługi sieci Web rejestracji certyfikatów w usługach certyfikatów Active Directory.

Dane przechowywane w rozszerzeniu niestandardowym mają limit 4 KB

Dane przechowywane w rozszerzeniu niestandardowym mają limit 4 KB, który można potwierdzić, uruchamiając następujące polecenie jako administrator:

certutil -schema Ext

Właściwość elementu ExtensionRawValue można wyświetlić MaxLength w danych wyjściowych:

C:\>certutil -schema Ext
Schema:
  Column Name                   Localized Name                Type    MaxLength
  ----------------------------  ----------------------------  ------  ---------
  ExtensionRequestId            Extension Request ID          Long    4 -- Indexed
  ExtensionName                 Extension Name                String  254
  ExtensionFlags                Extension Flags               Long    4
  ExtensionRawValue             Extension Raw Value           Binary  4096

CertUtil: -schema command completed successfully.

Limit można rozszerzyć do 16 KB po zainstalowaniu jednej z następujących lub kolejnych aktualizacji:

Ważne

Następne dwie sekcje zawierają instrukcje modyfikowania rejestru. Poważne problemy mogą wystąpić, jeśli rejestr jest niepoprawnie modyfikowany. Jako środek ostrożności utwórz kopię zapasową rejestru przed zmodyfikowaniem go. Aby uzyskać więcej informacji na temat sposobu tworzenia kopii zapasowych, przywracania i modyfikowania rejestru, zobacz artykuł Tworzenie kopii zapasowych i przywracanie rejestru systemu Microsoft Windows.

Rozszerzanie limitu przy użyciu Edytora rejestru

W Edytorze rejestru dodaj maskę bitów 0x1000 do następującego klucza rejestru. Następnie uruchom ponownie usługę AD CS.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\DBFlags

Uwaga 16.

To ustawienie należy ustawić na wszystkich serwerach usług AD CS, na których jest wymagane rozszerzenie.

Rozszerzanie limitu przy użyciu administracyjnego wiersza polecenia

Uruchom następujące polecenia, aby dodać 0x1000 wartość DBFlags klucza rejestru, a następnie ponownie uruchomić usługę AD CS:

certutil -setreg DBFlags +0x1000
net stop certsvc && net start certsvc

Uwaga 16.

To ustawienie należy ustawić na wszystkich serwerach usług AD CS, na których jest wymagane rozszerzenie.

To ustawienie powoduje nieodwracalną operację bazy danych, aby trwale rozszerzyć limit po ponownym uruchomieniu usługi.

Po zakończeniu rozszerzania i przechwyceniu nowych kopii zapasowych można rozważyć zniszczenie starych kopii zapasowych, aby zapobiec przypadkowemu wycofaniu.

Weryfikowanie ustawień limitu

Aby sprawdzić ustawienia limitu, uruchom następujące polecenie jako administrator i sprawdź MaxLength właściwość ExtensionRawValue w danych wyjściowych:

C:\>certutil -schema Ext

Schema:
  Column Name                   Localized Name                Type    MaxLength
  ----------------------------  ----------------------------  ------  ---------
  ExtensionRequestId            Extension Request ID          Long    4 -- Indexed
  ExtensionName                 Extension Name                String  254
  ExtensionFlags                Extension Flags               Long    4
  ExtensionRawValue             Extension Raw Value           Binary  16384

CertUtil: -schema command completed successfully.