Servizi certificati ha rifiutato di elaborare una richiesta di certificato molto lunga.
Le autorizzazioni per il controllo di accesso dell'autorità di certificazione (CA) garantiscono che i componenti e gli utenti autorizzati possano completare le attività richieste. Gli errori nel controllo di accesso possono indicare potenziali problemi associati all'uso inadeguato o all'insufficienza delle autorizzazioni.
Risoluzione del tentativo di invio di una richiesta di certificato lunga
Richieste di certificato estremamente lunghe possono rappresentare un tentativo di attacco Denial of Service.
È opportuno identificarne l'origine nel messaggio del registro eventi. Si dovrebbero anche esaminare le informazioni su tutte le richieste di certificato non riuscite per rilevare se sono state inviate altre richieste di certificato insolite.
Per risolvere questo potenziale problema:
Esaminare le richieste di certificato non riuscite per determinare se la richiesta non riuscita proviene da un'origine conosciuta o attendibile.
Se la richiesta è stata respinta per errore, modificare l'impostazione MaxIncomingMessageSize nel Registro di sistema per consentire richieste di certificato di maggiori dimensioni.
Se la richiesta non è stata respinta per errore, individuare l'origine della richiesta ed evitare l'invio di richieste da tale origine.
Per eseguire queste procedure è necessario appartenere al gruppo Administrators locale oppure avere ricevuto in delega l'autorità appropriata.
Controllare le richieste di certificato non riuscite
Per controllare le richieste di certificato non riuscite:
Nel computer in cui si trova la CA fare clic sul pulsante Start, scegliere Strumenti di amministrazione, quindi fare clic su Autorità di certificazione.
Esaminare le richieste non riuscite contenute nella cartella Richieste non riuscite e determinare se la richiesta proviene da un'origine attendibile.
È inoltre possibile aprire una finestra del prompt dei comandi ed eseguire il seguente comando: certutil -view LogFail.
Se la richiesta proviene da un'origine attendibile ma è stata negata perché di dimensioni eccessive, è possibile aumentare la dimensione massima dei messaggi utilizzando la seguente procedura, o chiedere al richiedente del certificato di inviare una nuova richiesta di certificato.
Modificare le dimensioni massime dei messaggi
L'impostazione predefinita per la dimensione massima dei messaggi è di 10.000 byte. Se durante il controllo delle richieste di certificato non riuscite nella procedura precedente si rilevano richieste di certificato legittime che sono state respinte a causa del superamento di questo valore, è consigliabile impostare questa impostazione del Registro di sistema su un valore maggiore, che consentirà il completamento di richieste analoghe.
Per modificare la dimensione massima dei messaggi:
Attenzione: modifiche non corrette del Registro di sistema potrebbero danneggiare gravemente il sistema. Prima di apportare modifiche al Registro di sistema, è necessario eseguire il backup di tutti i dati rilevanti.
Nel computer in cui si trova la CA fare clic sul pulsante Start, digitare cmd e premere INVIO.
Digitare certutil -setreg CA\MaxIncomingMessageSize <byte> e premere INVIO.
Per verificare che il contesto di accesso della CA sia corretto:
Sul computer su cui si trova la CA, fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic Servizi.
Verificare che nella colonna Stato del servizio Servizi certificati Active Directory venga visualizzato Avviato.
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>