Como configuro o AD CS para suportar restrições de nome (4.2.1.11 no RFC 2459)?

5

Estou tentando descobrir como fazer Subordinação qualificada com a extensão crítica definida, mas não consigo descobrir como fazer isso no MSFT AD CS.

Para um determinado certificado, como posso ter certeza de que as restrições de nome estão definidas adequadamente no certificado emitido?

Editar

Trabalho feito até agora (veja o histórico de edições para mais trabalhos):

Eu instalei um sub CA aqui seguindo estas instruções .

The name constraints are configured in one of two locations. When creating a new CA, you can define name constraints for that CA by configuring CAPolicy.inf to impose name constraints. Likewise, if you are creating a qualified subordinate CA certificate, you would define name constraints in the Policy.inf file. In both cases, the following syntax is used:

[NameConstraintsExtension]
Include = NameConstraintsPermitted
Exclude = NameConstraintsExcluded
Critical = TrUe

[NameConstraintsPermitted]
DNS = ""
email=""
UPN=""

[NameConstraintsExcluded]
DNS = .nwtraders.com
email = @nwtraders.com
UPN = .nwtraders.com
UPN = @nwtraders.com
URI = ftp://.nwtraders.com
DIRECTORYNAME = "DC=NWtraders, DC=com"

Meu capolicy.inf na subCA é isso

[Version]
Signature="$Windows NT$"

[PolicyStatementExtension]
Policies=LegalPolicy

[LegalPolicy]
OID=1.2.3.4.1455.67.89.5
Notice="Legal Policy Statement"
URL=http://pki.bitclear.us/pki/cps.txt

[Certsrv_Server]
RenewalKeyLength=2048
RenewalValidityPeriod=Years
RenewalValidityPeriodUnits=20
LoadDefaultTemplates=0
AlternateSignatureAlgorithm=1
# ForceUTF8=0 

[CRLDistributionPoint] 
Empty=True

[AuthorityInformationAccess] 
Empty=True

[BasicConstraintsExtension] 
PathLength=1 
Critical=Yes

[NameConstraintsExtension]
Include = NameConstraintsPermitted
Exclude = NameConstraintsExcluded
Critical = True

[NameConstraintsPermitted]
DirectoryName = "DC=gg, DC=Com"
email = @gg.com
UPN = .gg.com
UPN = @gg.com


#[EnhancedKeyUsageExtension] 
#OID=1.3.6.1.5.5.7.3.4        ; Secure Email 
#OID=1.3.6.1.4.1.311.20.2.2    ; Smart Card Logon 
#Critical=No
# on a sub CA do this: Certutil –setreg Policy\CAPathLength 2

my policy.inf no SubCA e no rootCA é isso

[Version]
Signature= "$Windows NT$"

[RequestAttributes]
CertificateTemplate = SubCA

[PolicyStatementExtension]
Policies = HighAssurancePolicy, MediumAssurancePolicy, LowAssurancePolicy
CRITICAL = FALSE

[HighAssurancePolicy]
OID = 1.3.6.1.4.1.311.21.8.2473717464.1095930238.502626717.506190032.1.402

[MediumAssurancePolicy]
OID = 1.3.6.1.4.1.311.21.8.2473717464.1095930238.502626717.506190032.1.401

[LowAssurancePolicy]
OID = 1.3.6.1.4.1.311.21.8.2473717464.1095930238.502626717.506190032.1.400

[NameConstraintsExtension]
Include = NameConstraintsPermitted
Exclude = NameConstraintsExcluded
Critical = True

[NameConstraintsPermitted]
DirectoryName = "DC=g, DC=Com"
email = @g.com
UPN = .g.com
UPN = @g.com

[NameConstraintsExcluded]

Não importa quantas vezes eu reinicie o subCA, ou reinstale o subCA, ou reinicie o rootCA Não é possível obter uma restrição de nome visível no pedido do subCA (via certutil - dump) ou quando visualizo o certificado que é emitido no MMC.

Sei que isso é possível porque um dump com restrições de nome está disponível aqui

    
por random65537 19.02.2014 / 03:52

1 resposta

1

Microsoft acaba de postar este artigo sobre como usar restrições de nome com o AD CS

Para aplicar uma restrição de nome a uma política pendente, execute o seguinte comando

Certreq -policy originalrequest.req policy.inf modifiedrequest.req

originalrequest.req - o arquivo de solicitação original fornecido pelo subordinado à CA pai

policy.inf - O arquivo de políticas que contém as configurações que você deseja aplicar à solicitação

modifiedrequest.inf - Este é o arquivo de saída que conterá a solicitação original e foi modificado pela política. Este arquivo será fornecido para a CA pai em vez do originalrequest.req

    
por 20.02.2014 / 18:59