List what Enrollment Policy Edit Flags
Some requests from the client may get automatically stripped based on these hidden server settings.
C:\Users\ChrisLamont>certutil -getreg
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration:
Keys:
Secure Email Root v1
Values:
Active REG_SZ = Secure Email Root v1
DBDirectory REG_SZ = C:\Windows\system32\CertLog
DBLogDirectory REG_SZ = C:\Windows\system32\CertLog
DBTempDirectory REG_SZ = C:\Windows\system32\CertLog
DBSystemDirectory REG_SZ = C:\Windows\system32\CertLog
DBSessionCount REG_DWORD = 64 (100)
LDAPFlags REG_DWORD = 0
DBFlags REG_DWORD = b0 (176)
DBFLAGS_MAXCACHESIZEX100 -- 10 (16)
DBFLAGS_CHECKPOINTDEPTH60MB -- 20 (32)
DBFLAGS_LOGBUFFERSHUGE -- 80 (128)
Version REG_DWORD = 40001 (262145) -- 4.1
SetupStatus REG_DWORD = 6001 (24577)
SETUP_SERVER_FLAG -- 1
SETUP_DCOM_SECURITY_UPDATED_FLAG -- 2000 (8192)
SETUP_SERVER_IS_UP_TO_DATE_FLAG -- 4000 (16384)
CertUtil: -getreg command completed successfully.
C:\Users\ChrisLamont>certutil -getreg policy\editflags
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\Secur
e Email Root v1\PolicyModules\CertificateAuthority_MicrosoftDefault.Policy\EditF
lags:
EditFlags REG_DWORD = 83ee (33774)
EDITF_REQUESTEXTENSIONLIST -- 2
EDITF_DISABLEEXTENSIONLIST -- 4
EDITF_ADDOLDKEYUSAGE -- 8 // <--- THIS ENTRY REMOVES A CLIENT'S Key Agreement
EDITF_ATTRIBUTEENDDATE -- 20 (32)
EDITF_BASICCONSTRAINTSCRITICAL -- 40 (64)
EDITF_BASICCONSTRAINTSCA -- 80 (128)
EDITF_ENABLEAKIKEYID -- 100 (256)
EDITF_ATTRIBUTECA -- 200 (512)
EDITF_ATTRIBUTEEKU -- 8000 (32768)
CertUtil: -getreg command completed successfully.
The solution is to run the command certutil -setreg policy\EditFlags -EDITF_ADDOLDKEYUSAGE
which in turn updates
Configuration\spatula\PolicyModules\CertificateAuthority_MicrosoftDefault.Policy\EditFlags:
How to define a policy on a Per CA Basis