Compartilhar via


Solucionar problemas de sincronização e importação do WSUS

Aplica-se a: Windows Server Update Services

A partir de julho de 2020, os usuários tiveram problemas de sincronização e importação do WSUS com os pontos de extremidade do Windows Update (WU) ou do Microsoft Update (MU).

Este artigo descreve como solucionar alguns problemas comuns. Você também pode usar algumas dessas técnicas de solução de problemas (como capturas de rede) para muitos outros problemas.

Pontos de extremidade

Atualmente, o WSUS usa os seguintes pontos de extremidade para sincronizar metadados:

  • https://sws.update.microsoft.com

    A maioria dos servidores WSUS deve sincronizar com esse novo ponto de extremidade. A partir de julho de 2020, esse endpoint aceita apenas conexões TLS (Transport Layer Security) 1.2. E algumas cifras foram desativadas.

  • https://sws1.update.microsoft.com

    Esse endpoint antigo será desativado eventualmente. Para obter mais informações, consulte Fim da sincronização do WSUS 3.0 SP2. Esse ponto de extremidade dá suporte a conexões TLS 1.2, TLS 1.1 e TLS 1.0.

  • https://fe2.update.microsoft.com

    Esse ponto de extremidade antigo é desativado como um ponto de extremidade de sincronização do WSUS e as conexões com ele falharão. No entanto, os clientes do Windows Update configurados para sincronizar com o Microsoft Update podem continuar a usar esse ponto de extremidade.

Quando você tiver problemas de sincronização do WSUS ou de importação manual, primeiro verifique com qual ponto de extremidade você está sincronizando:

  1. Abra uma janela do Prompt de Comando do PowerShell com privilégios elevados no servidor WSUS.

  2. Para localizar o ponto de extremidade de sincronização atual, execute o seguinte script do PowerShell:

    $server = Get-WsusServer
    $config = $server.GetConfiguration()
    # Check current settings before you change them 
    $config.MUUrl
    

Windows Server 2012 e versões posteriores devem ser configuradas para usar o https://sws.update.microsoft.com ponto de extremidade. Se você ainda estiver usando https://sws1.update.microsoft.com ou , altere para o novo ponto de extremidade seguindo as etapas em A sincronização do WSUS falhará com SoapExceptionhttps://fe2.update.microsoft.com. Se necessário, solucione problemas de conexão com o https://sws.update.microsoft.com ponto de extremidade.

Problema 1: a importação manual falha, mas a sincronização é bem-sucedida

Muitos usuários importam atualizações para o WSUS manualmente e algumas atualizações devem ser importadas manualmente. Por exemplo, as atualizações de visualização lançadas na terceira e quarta semanas do mês devem ser importadas manualmente. A partir do final de julho de 2020, você pode ter descoberto que não é possível importar atualizações manualmente.

Captura de tela de uma falha de importação de atualização.

No entanto, alguns servidores WSUS ainda podem importar atualizações com êxito. E a sincronização usual com WU e MU continua funcionando.

Esse problema ocorre em servidores WSUS que executam o Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 ou Windows Server 2019.

Solucionar o problema 1

  1. Execute o script do PowerShell em Pontos de Extremidade para determinar quais pontos de extremidade os servidores WSUS usam. Você provavelmente descobrirá que os servidores em funcionamento estão se comunicando com https://fe2.update.microsoft.com o ou https://sws1.update.microsoft.com, e os servidores com falha estão se comunicando com https://sws.update.microsoft.como .

  2. Verifique se há erros no %Program Files%\Update Services\LogFiles\SoftwareDistribution.log arquivo ao importar atualizações manualmente. Procure erros semelhantes ao exemplo a seguir:

    ProcessWebServiceProxyException found Exception was WebException. Action: Retry. Exception Details: System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
       at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
       -- End of inner exception stack trace ---
       ...
       at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
       at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
       at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
       at System.Net.ConnectStream.WriteHeaders(Boolean async)
    

A seguinte mensagem no erro indica que o servidor WSUS tentou se conectar ao WU/MU usando TLS, mas o WU/MU fechou a conexão:

uma conexão existente foi fechada forçadamente pelo host remoto.

A captura de tela a seguir mostra uma captura de rede da tentativa de conexão.

Captura de tela da primeira captura de rede da tentativa de conexão.

Na captura de rede, o quadro 874 é o pacote Client Hello que usa o TLS 1.0. O quadro 877 é a resposta do servidor. A resposta inclui os sinalizadores ACK (A) e RST (R). Como o https://sws.update.microsoft.com endpoint dá suporte apenas a conexões TLS 1.2, ele nega a conexão e emite uma resposta de redefinição.

Resolução para o problema 1

Esse problema ocorre porque a funcionalidade de importação do WSUS não pode usar o TLS 1.2.

Para resolver esse problema, execute um dos métodos a seguir:

  • Configure o .NET Framework para usar o TLS 1.2 usando chaves do Registro.

    Para definir as chaves do Registro, consulte Configurar para criptografia forte. Reinicie o servidor depois de definir as chaves do Registro.

  • Crie ou atualize o arquivo w3wp.exe.config para habilitar o TLS 1.2.

    Observação

    Essa alteração se aplicará a todas as instâncias w3wp.exe criadas, independentemente de serem para o WSUS. W3wp.exe usa TLS 1.2 se o lado remoto suportar esta versão. Se o TLS 1.1 e o TLS 1.0 estiverem habilitados, W3wp.exe negociará esses protocolos se o site de destino não der suporte ao TLS 1.2.

    Se o %SystemRoot%\system32\inetsrv\w3wp.exe.config arquivo não existir, siga estas etapas:

    1. Crie um novo arquivo chamado W3wp.exe.config na %SystemRoot%\system32\inetsrv pasta.

    2. Abra o arquivo em um editor de texto, como o Bloco de Notas.

    3. Adicione as seguintes linhas ao arquivo e salve-o:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
         <runtime>
            <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSystemDefaultTlsVersions=false"/>
         </runtime>
      </configuration>
      

    Se o %SystemRoot%\system32\inetsrv\w3wp.exe.config arquivo já existir, siga estas etapas:

    1. Abra o arquivo no Bloco de Notas ou em outro editor de texto.

    2. Adicione as seguintes linhas imediatamente abaixo do <elemento de configuração> e salve o arquivo:

      <runtime>
         <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSystemDefaultTlsVersions=false"/>
      </runtime>
      

    Depois de criar ou atualizar o arquivo W3wp.exe.config, abra uma janela do Prompt de Comando com privilégios elevados e execute iisreset para reiniciar todos os processos de trabalho. Teste se a importação manual agora funciona.

Problema 2: a importação manual falha após a desativação do TLS 1.1 ou TLS 1.0

O TLS 1.1 e o TLS 1.0 estão sendo descontinuados porque são considerados inseguros. Depois de desativar esses protocolos, você não poderá mais importar atualizações. No entanto, a sincronização continua funcionando.

Esse problema ocorre em servidores WSUS que executam o Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 ou Windows Server 2019.

Solucionar o problema 2

O WSUS registra quais versões SSL/TLS estão habilitadas quando ele é iniciado. Para determinar as versões SSL/TLS, siga estas etapas:

  1. Reinicie o serviço WSUS.

  2. Execute iisreset em um prompt de comando com privilégios elevados para forçar o WSUS a passar pela sequência de inicialização.

  3. Abra o console do WSUS e conecte-se ao servidor.

  4. Abra %Program Files%\Update Services\LogFiles\SoftwareDistribution.log, procure entradas que comecem em Protocolo SCHANNEL. Você deve ver entradas semelhantes ao exemplo a seguir:

    SCHANNEL Protocol 'TLS 1.0' disabled
    SCHANNEL Protocol 'TLS 1.1' disabled
    SCHANNEL Protocols subkey for 'TLS 1.2' not found. Protocol is enabled
    

    Essas entradas mostram que o TLS 1.1 e o TLS 1.0 estão desabilitados e o TLS 1.2 está habilitado.

Se o processo de importação falhar, SoftwareDistribution.log registrará a seguinte entrada de erro:

ProcessWebServiceProxyException found Exception was WebException. Action: Retry. Exception Details: System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. ---> System.ComponentModel.Win32Exception: The client and server cannot communicate, because they do not possess a common algorithm

A captura de tela a seguir mostra uma captura de rede da tentativa de conexão.

Captura de tela da segunda captura de rede.

Na captura de rede, os quadros 1518-1520 mostram o handshake de três vias (SYN, SYN ACK, ACK) entre o cliente e o servidor. O quadro 1536 é um pacote ACK FIN do servidor WSUS.

O WSUS fecha a conexão, pois todos os protocolos que ele sabe usar para importação (SSL3, TLS 1.0, TLS 1.1) estão desabilitados e ele não pode usar o TLS 1.2.

Resolução para o problema 2

Esse problema é semelhante ao problema 1, no qual a importação do WSUS não pode usar o TLS 1.2. Para corrigir esse problema, use Resolução para o problema 1.

Problema 3: a sincronização falha nos servidores WSUS do Windows Server 2012 e do Windows Server 2012 R2 que aplicam apenas atualizações somente de segurança

A manutenção do Windows Server 2012 e do Windows Server 2012 R2 contém as seguintes faixas de atualização:

O WSUS no Windows Server 2012 e no Windows Server 2012 R2 não pode usar o TLS 1.2 para sincronização, a menos que um dos seguintes Pacotes Cumulativos Mensais ou um Pacote Cumulativo Mensal posterior esteja instalado:

A alteração que permite que o WSUS use o TLS 1.2 é uma correção não relacionada à segurança, está incluída apenas nos Rollups Mensais.

Alguns usuários optam por instalar apenas as atualizações somente de segurança e nunca instalam os pacotes cumulativos mensais. Portanto, seus servidores WSUS não têm a atualização que habilita o TLS 1.2 instalada. Depois que o https://sws.update.microsoft.com ponto de extremidade é alterado para aceitar apenas conexões TLS 1.2, esses servidores WSUS não podem mais sincronizar com o ponto de extremidade. Esse problema também ocorre em um servidor WSUS do Windows Server 2012 ou Windows Server 2012 R2 recém-instalado que não instalou nenhum pacote cumulativo de atualizações mensais.

Solucionar o problema 3

Se o servidor WSUS tiver as atualizações corretas instaladas, o WSUS registrará quais versões SSL/TLS estão habilitadas quando ele for iniciado. Siga estas etapas no servidor WSUS:

  1. Reinicie o serviço WSUS.

  2. Execute iisreset em um prompt de comando com privilégios elevados para forçar o WSUS a passar pela sequência de inicialização.

  3. Abra o console do WSUS e conecte-se ao servidor.

  4. Abra %Program Files%\Update Services\LogFiles\SoftwareDistribution.log, pesquise entradas que começam com SCHANNEL Protocol. Você deve ver entradas semelhantes ao exemplo a seguir:

    SCHANNEL Protocol 'TLS 1.0' disabled
    SCHANNEL Protocol 'TLS 1.1' disabled
    SCHANNEL Protocols subkey for 'TLS 1.2' not found. Protocol is enabled
    

    Se você não conseguir encontrar essas entradas, isso significa que a atualização que habilita o TLS 1.2 não está instalada.

Quando a sincronização falha, SoftwareDistribution.log registra a seguinte mensagem de erro:

WebServiceCommunicationHelper.ProcessWebServiceProxyException    ProcessWebServiceProxyException found Exception was WebException. Action: Retry. Exception Details: System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)

A captura de tela a seguir mostra uma captura de rede da tentativa de conexão.

Captura de tela da terceira captura de rede.

Na captura de rede, o quadro 95 é o pacote Client Hello que usa TLS 1.0. O quadro 96 é o pacote RST do https://sws.update.microsoft.com. Como o ponto de extremidade dá suporte apenas a conexões TLS 1.2, ele nega a conexão e, em seguida, emite uma resposta de redefinição. O servidor WSUS tentará várias vezes antes de desistir. Portanto, essa sequência é repetida.

Resolução para o problema 3

Para corrigir esse problema, instale o Pacote Cumulativo Mensal mais recente para Windows Server 2012 ou Windows Server 2012 R2. Aplique também a Resolução para o problema 1 para evitar a falha de importação manual.

Problema 4: a sincronização falhará após julho de 2020 se o WSUS estiver integrado ao Configuration Manager

Muitas instalações do WSUS são integradas aos SUPs (pontos de atualização de software) do Microsoft Endpoint Configuration Manager. Após julho de 2020, você poderá enfrentar falhas de sincronização se o Configuration Manager estiver configurado para sincronizar drivers do Surface.

Esse problema ocorre em servidores WSUS que executam o Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 ou Windows Server 2019.

Solucionar o problema 4

Quando esse problema ocorre, as entradas semelhantes ao exemplo a seguir são registradas Wsyncmgr.log:

Calling ImportUpdateFromCatalogSite for driver update GUIDs
Generic exception : ImportUpdateFromCatalogSite failed. Arg = 001d4517-c586-4bb1-9e66-ed6ff8e8d34f. Error =The underlying connection was closed: An unexpected error occurred on a receive.
Generic exception : ImportUpdateFromCatalogSite failed. Arg = 0037641d-bb9b-4530-9568-11e413223106. Error =The underlying connection was closed: An unexpected error occurred on a receive.

Além disso, o %Program Files\Update Services\LogFiles\SoftwareDistribution.log arquivo registra os seguintes erros:

ProcessWebServiceProxyException found Exception was WebException. Action: Retry. Exception Details: System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. ---> System.ComponentModel.Win32Exception: The client and server cannot communicate, because they do not possess a common algorithm

Esses erros indicam que a conexão foi fechada. Esse problema ocorre porque o Configuration Manager usa a funcionalidade de importação do WSUS. Portanto, tem as mesmas limitações.

Resolução para o problema 4

Para corrigir esse problema, use Resolução para o problema 1.

Problema 5: a sincronização falha após julho de 2020 devido a criptografias limitadas

Você pode desativar várias criptografias para proteger conexões TLS. A partir de julho de 2020, seus servidores WSUS não poderão mais sincronizar com o WU/MU. Além disso, quando https://sws.update.microsoft.com é alterado para aceitar apenas conexões TLS 1.2, algumas cifras são removidas.

Esse problema ocorre em servidores WSUS que executam o Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 ou Windows Server 2019.

Solucionar o problema 5

O %Program Files\Update Services\LogFiles\SoftwareDistribution.log arquivo registra os seguintes erros ao sincronizar:

ProcessWebServiceProxyException found Exception was WebException. Action: Retry. Exception Details: System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host

No entanto, essas entradas não são úteis para determinar se você tem um problema de criptografia.

Nessa situação, use uma captura de rede ou verifique os GPOs (Objetos de Política de Grupo) aplicados. Para verificar os GPOs aplicados, execute o seguinte comando em um prompt de comando com privilégios elevados:

gpresult /scope computer /h GPReport.html

Abra GPReport.html em um navegador.

Captura de tela das informações da Diretiva de Grupo.

Pesquise SSL Cipher Suite Order e a configuração SSL Cipher Suites. Normalmente, essa configuração não está configurada. Se estiver configurado, o problema pode ocorrer porque não há uma cifra comum com WU/MU.

A partir de agosto de 2020, https://sws.update.microsoft.com dá suporte às seguintes criptografias:

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

Observação

Essa lista mudará com o tempo porque as cifras ficarão gradualmente mais fracas à medida que a tecnologia melhorar.

Se o GPO for aplicado e não especificar uma dessas criptografias, a comunicação com o WU/MU falhará.

A captura de tela a seguir mostra uma captura de rede.

Captura de tela da quarta captura de rede.

Na captura de rede, o quadro 400 é o pacote Client Hello que usa o TLS 1.2. Os detalhes do quadro mostram quais cifras foram enviadas pelo cliente. O quadro 404 é o pacote RST do https://sws.update.microsoft.com. Como não há uma cifra comum, a sincronização falha.

Resolução para o problema 5

Para corrigir o problema, siga estas etapas:

  1. Use a saída de gpresult para determinar o GPO que especifica a Ordem do Conjunto de Criptografia SSL e, em seguida, remova o GPO. Ou altere-o para incluir cifras suportadas por https://sws.update.microsoft.com.

    Para Windows Server 2016 e Windows Server 2019, inclua uma das seguintes criptografias:

    • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
    • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

    Para Windows Server 2012 e 2012 R2, inclua uma das seguintes criptografias:

    • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256
    • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
    • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256
    • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384
  2. Se as criptografias não forem definidas pelo GPO, localize a seguinte subchave do Registro:

    HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002

    Adicione uma das criptografias necessárias ao valor Functions da chave do Registro.

  3. Reinicie o servidor WSUS.

Para evitar falhas de importação manual, aplique também a Resolução para o problema 1.

Uma conexão bem-sucedida

As capturas de tela a seguir mostram uma conexão bem-sucedida quando um servidor WSUS do Windows Server 2016 sincroniza atualizações.

Captura de tela da quinta captura de rede.

Captura de tela da sexta captura de rede.

Na captura de rede, o quadro 191 é o pacote Client Hello que usa TLS 1.2. Os detalhes do quadro mostram quais cifras foram enviadas pelo cliente. O quadro 195 é o pacote Server Hello do endpoint. O TLSCipherSuite escolhido pelo WU é TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384. O certificado do servidor também é enviado no pacote Server Hello.

A configuração de conexão adicional ocorre nos quadros 196-203. A transferência de dados pelo aplicativo (WSUS) e pelo https://sws.update.microsoft.com ponto de extremidade começa no quadro 207.

Uma observação sobre servidores proxy

Se você usar um servidor proxy, a captura de rede será diferente. O servidor WSUS se conecta ao proxy e você pode ver uma solicitação CONNECT com o destino https://sws.update.microsoft.com, https://sws1.update.microsoft.com, ou https://fe2.update.microsoft.com. O WSUS emitirá um pacote Client Hello com as criptografias às quais ele dá suporte. Se a conexão não for bem-sucedida devido à versão incorreta do TLS ou se não houver uma cifra comum, você poderá ou não ver um pacote RST. Os proxies tendem a retornar um FIN ao cliente para indicar o fim da conexão. Mas isso pode não ser verdade para todos os servidores proxy. Alguns servidores proxy enviam um pacote RST ou outra coisa.

Ao usar um proxy, você precisa saber o endereço IP da interface interna do servidor proxy, pois o WSUS não está se comunicando diretamente com os pontos de extremidade do WU. Se você não conseguir obter o endereço IP do servidor proxy, pesquise a captura de rede para solicitações CONNECT e pesquise a URL do ponto de extremidade do Windows Update.

Referências