a certificação certutil falha com o tempo limite de 30 segundos - o que fazer?

10

O armazenamento de certificados na minha caixa Win7 está constantemente pendurado. Observar:


C: \> 1.cmd

C: \> certutil -? | findstr / i ping
  -ping - Interface de solicitação de serviços de certificado do Active Directory Ping
  -pingadmin - Interface de administrador dos serviços de certificado do Active Directory de ping

C: \> defina PROMPT = $ P ($ t) $ G

C: \ (13: 04: 28.57)> certutil -ping
Comando CertUtil: -ping FAILED: 0x80070002 (WIN32: 2)
CertUtil: O sistema não consegue encontrar o arquivo especificado.

C: \ (13: 04: 58.68)> certutil -pingadmin

Comando CertUtil: -pingadmin FAILED: 0x80070002 (WIN32: 2)
CertUtil: O sistema não consegue encontrar o arquivo especificado.

C: \ (13: 05: 28.79)> defina PROMPT = $ P $ G

C: \>

Explicações:

  • O primeiro comando mostra que existem –pinge –pingadminparâmetros para certificar
  • A tentativa de qualquer parâmetro de ping falha com o tempo limite de 30 segundos (a hora atual é vista no prompt)

Esse é um problema sério. Ele estraga toda a comunicação segura no meu aplicativo. Se alguém souber como isso pode ser corrigido - compartilhe.

Obrigado.

PS

1.cmd é simplesmente um lote desses comandos:

certutil -? | findstr /i ping
set PROMPT=$P($t)$G
certutil -ping
certutil -pingadmin
set PROMPT=$P$G

EDIT1

Consegui fixar a API do Windows único que causa o problema - DsGetDcName

De acordo com o windbg, o certutil -ping o chama assim:

PDOMAIN_CONTROLLER_INFO pdci;
DWORD ret = ::DsGetDcName(NULL, NULL, NULL, NULL, DS_DIRECTORY_SERVICE_PREFERRED, &pdci);

Na minha estação de trabalho, o tempo limite é excedido por 30 segundos e retorna o código de erro 1355, que é ERROR_NO_SUCH_DOMAIN Nenhum controlador de domínio disponível para o domínio especificado ou o domínio não existe.

Em outra máquina, que é acidentalmente um servidor Windows 2003, ele retorna quase imediatamente com o nome correto do controlador de domínio dentro da DOMAIN_CONTROLLER_INFOestrutura retornada .

Agora, a pergunta é o que está faltando na minha estação de trabalho para que a API encontre o controlador de domínio correto?

marca
fonte

Respostas:

0

Por favor, verifique o seguinte

  1. Você pode executar a certutil -ping -config "cadnsname\CA logical name"partir dos hosts afetados.
  2. Quem tem permissão para solicitar certificados na CA (alguém alterou Usuários Autenticados para Usuários do Domínio)?
  3. Observe as permissões do DCOM para garantir que os usuários autenticados tenham as permissões corretas na autoridade de certificação. Permissões DCOM no grupo de acesso DCOM da CA para serviço de certificado:

    Nível de permissões de acesso -> Acesso local - Permitir, Acesso remoto - Permitir inicialização e ativação Nível de permissões -> Início remoto - Permitir, Ativação remota - Permitir

Para mais detalhes, consulte o URL abaixo para solucionar problemas.

http://blogs.technet.com/b/askds/archive/2007/11/06/how-to-troubleshoot-certificate-enrollment-in-the-mmc-certificate-snap-in.aspx

Mit Naik
fonte
Lamento expor minha ignorância, mas como posso saber o CADNSName? Seria útil se você indicasse como descubro o "nome lógico cadns \ CA nome lógico" relevante. Você pode explicar um pouco mais sobre as etapas sugeridas? Obrigado.
marca de
Infelizmente, não segui as etapas descritas no artigo que você anexou, porque provavelmente se destina a máquinas Windows Server com acesso ao Active Directory. O Mine é uma estação de trabalho Windows 7 sem esse acesso.
marque
Eu editei mais a questão.
marque
certutil -adca
UnNamed 28/03/19