Os Serviços de Certificados recusaram processar um pedido de certificado extremamente longo.
As permissões de controlo de acesso da autoridade de certificação (AC) garantem a realização das tarefas necessárias por componentes e utilizadores autorizados. Os erros de controlo de acesso podem identificar problemas potenciais associados à utilização insuficiente ou inapropriada de permissões.
Lidar com uma tentativa de submeter um pedido de certificado longo
Os pedidos de certificados extremamente longos podem constituir uma tentativa de lançamento de um ataque denial-of-service.
A origem deve ser identificada na mensagem do registo de eventos. Deve rever também as informações sobre todos os pedidos de certificados falhados para detetar se houve outros pedidos de certificados pouco usuais.
Para resolver este potencial problema:
Reveja os pedidos de certificados falhados para determinar se a origem do pedido falhado é conhecida ou fidedigna.
Se o pedido foi rejeitado por engano, modifique a definição MaxIncomingMessageSize no registo para permitir pedidos de certificados maiores.
Se o pedido não foi rejeitado por engano, identifique a sua origem e impeça essa origem de submeter pedidos.
Estes procedimentos exigem que seja membro do grupo de Administradores locais, ou que lhe tenha sido delegado o nível de autoridade apropriado.
Rever pedidos de certificados falhados
Para rever pedidos de certificados falhados:
No computador que aloja a AC, clique em Iniciar, aponte para Ferramentas Administrativas e clique em Autoridade de Certificação.
Examine os pedidos falhados na pasta Pedidos Falhados e determine se a sua origem é fidedigna.
Pode também abrir uma janela da linha de comandos e executar o seguinte comando: certutil -view LogFail.
Se a origem do pedido for legítima mas o pedido foi rejeitado por ser demasiado grande, pode aumentar o tamanho máximo das mensagens utilizando o procedimento indicado a seguir ou então o requerente do certificado submete um novo pedido.
Modificar o tamanho máximo da mensagem
A definição do tamanho máximo da mensagem é de 10.000 bytes. Se durante a revisão de pedidos de certificados falhados no procedimento anterior detetar pedidos de certificados legítimos que foram rejeitados por excederam este valor, considere aumentar o valor da definição deste registo para um valor que autorize pedidos semelhantes.
Para modificar o tamanho máximo da mensagem:
Atenção: A edição incorreta do registo poderá danificar gravemente o sistema. Antes de fazer alterações no registo, deve fazer uma cópia de segurança de todos os dados importantes.
No computador que aloja a AC, clique em Iniciar, escreva cmd e prima ENTER.
Escreva certutil -setreg CA\MaxIncomingMessageSize <bytes> e prima ENTER.
Para confirmar se o contexto de início de sessão da AC está correto:
No computador que aloja a AC, clique em Iniciar, aponte para Ferramentas Administrativas e clique em Serviços.
Confirme se a palavra Iniciado aparece no Estado pertencente ao serviço Serviços de Certificados do Active Directory.
Target | Microsoft.Windows.CertificateServices.CARole.2016 | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 60 | ||
Event Source | Microsoft-Windows-CertificationAuthority | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | High | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
Alert | WriteAction | System.Health.GenerateAlert | Default |
WriteToCertSvcEvents | WriteAction | Microsoft.Windows.CertificateServices.CARole.CertSvcEvents.Publisher | Default |
WriteToDB | WriteAction | Microsoft.SystemCenter.CollectEvent | Default |
<Rule ID="Microsoft.Windows.CertificateServices.CARole.2016.CertSvcEvents.60" Enabled="true" Target="CSDisc!Microsoft.Windows.CertificateServices.CARole.2016" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">60</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-CertificationAuthority</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WriteToDB" TypeID="SC!Microsoft.SystemCenter.CollectEvent"/>
<WriteAction ID="WriteToCertSvcEvents" TypeID="Microsoft.Windows.CertificateServices.CARole.CertSvcEvents.Publisher"/>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>2</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="AlertMessageIDf35538bb2517423d95f7d32e661b5ffa"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>