Compartir a través de


Solución de problemas de sincronización e importación de WSUS

Se aplica a: Windows Server Update Services

A partir de julio de 2020, los usuarios han experimentado problemas de sincronización e importación de WSUS con los puntos de conexión de Windows Update (WU) o Microsoft Update (MU).

En este artículo se describe cómo solucionar algunos problemas comunes. También puede usar algunas de estas técnicas de solución de problemas (como las capturas de red) para muchos otros problemas.

Puntos de conexión

Actualmente, WSUS usa los siguientes puntos de conexión para sincronizar los metadatos:

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

    La mayoría de los servidores WSUS deben sincronizarse con este nuevo punto de conexión. A partir de julio de 2020, este punto de conexión solo acepta conexiones de seguridad de la capa de transporte (TLS) 1.2. Y algunos cifrados estaban deshabilitados.

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

    Este punto de conexión antiguo se retirará finalmente. Para obtener más información, vea Fin de sincronización para WSUS 3.0 SP2. Este punto de conexión admite conexiones TLS 1.2, TLS 1.1 y TLS 1.0.

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

    Este punto de conexión anterior se retira como un punto de conexión de sincronización de WSUS y se producirá un error en las conexiones a él. Sin embargo, los clientes de Windows Update configurados para sincronizarse con Microsoft Update pueden seguir usando este punto de conexión.

Cuando experimente problemas de sincronización de WSUS o de importación manual, compruebe primero con qué punto de conexión se está sincronizando:

  1. Abra una ventana del símbolo del sistema de PowerShell con privilegios elevados en el servidor WSUS.

  2. Para buscar el punto de conexión de sincronización actual, ejecute el siguiente script de PowerShell:

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

Windows Server 2012 y versiones posteriores deben configurarse para usar el https://sws.update.microsoft.com punto de conexión. Si sigue usando https://sws1.update.microsoft.com o https://fe2.update.microsoft.com, cambie al nuevo punto de conexión siguiendo los pasos descritos en Sincronización de WSUS se produce un error con SoapException. Si es necesario, solucione problemas de conexión con el https://sws.update.microsoft.com punto de conexión.

Problema 1: Se produce un error en la importación manual, pero la sincronización se realiza correctamente

Muchos usuarios importan actualizaciones en WSUS manualmente y algunas actualizaciones se deben importar manualmente. Por ejemplo, las actualizaciones en versión preliminar publicadas en la tercera y cuarta semana del mes deben importarse manualmente. A partir de finales de julio de 2020, es posible que no pueda importar manualmente las actualizaciones.

Captura de pantalla de un error de importación de actualización.

Sin embargo, algunos servidores WSUS todavía pueden importar actualizaciones correctamente. Y la sincronización habitual con WU y MU continúa funcionando.

Este problema se produce en servidores WSUS que ejecutan Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 o Windows Server 2019.

Solución del problema 1

  1. Ejecute el script de PowerShell en Puntos de conexión para determinar qué puntos de conexión usan los servidores WSUS. Es probable que encuentre que los servidores de trabajo se comunican con https://fe2.update.microsoft.com o https://sws1.update.microsoft.comy que los servidores con errores se comunican con https://sws.update.microsoft.com.

  2. Compruebe si hay errores en el %Program Files%\Update Services\LogFiles\SoftwareDistribution.log archivo al importar manualmente las actualizaciones. Busque errores similares al ejemplo siguiente:

    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)
    

El siguiente mensaje del error indica que el servidor WSUS intentó conectarse con WU/MU mediante TLS, pero WU/MU cerró la conexión:

El host remoto forzó el cierre de la conexión existente.

En la captura de pantalla siguiente se muestra una captura de red del intento de conexión.

Captura de pantalla de la primera captura de red del intento de conexión.

En la captura de red, frame 874 es el paquete Client Hello que usa TLS 1.0. Frame 877 es la respuesta del servidor. La respuesta incluye las marcas ACK (A) y RST (R). Dado que el https://sws.update.microsoft.com punto de conexión solo admite conexiones TLS 1.2, deniega la conexión y emite una respuesta de restablecimiento.

Resolución del problema 1

Este problema se produce porque la funcionalidad de importación de WSUS no puede usar TLS 1.2.

Para resolver este problema, utilice uno de los siguientes métodos:

  • Configure .NET Framework para usar TLS 1.2 mediante claves del Registro.

    Para establecer las claves del Registro, consulte Configuración de la criptografía segura. Reinicie el servidor después de establecer las claves del Registro.

  • Cree o actualice el archivo w3wp.exe.config para habilitar TLS 1.2.

    Nota:

    Este cambio se aplicará a todas las instancias de w3wp.exe que se crean, independientemente de si son para WSUS. W3wp.exe usa TLS 1.2 si el lado remoto admite esta versión. Si TLS 1.1 y TLS 1.0 están habilitados, W3wp.exe negocia estos protocolos si el sitio de destino no admite TLS 1.2.

    Si el %SystemRoot%\system32\inetsrv\w3wp.exe.config archivo no existe, siga estos pasos:

    1. Cree un nuevo archivo denominado W3wp.exe.config en la %SystemRoot%\system32\inetsrv carpeta .

    2. Abra el archivo en un editor de texto, como el Bloc de notas.

    3. Agregue las líneas siguientes al archivo y guarde el archivo:

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

    Si el %SystemRoot%\system32\inetsrv\w3wp.exe.config archivo ya existe, siga estos pasos:

    1. Abra el archivo en el Bloc de notas u otro editor de texto.

    2. Agregue las líneas siguientes inmediatamente en el <elemento de configuración> y guarde el archivo:

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

    Después de crear o actualizar el archivo W3wp.exe.config, abra una ventana del símbolo del sistema con privilegios elevados y, a continuación, ejecute iisreset para reiniciar todos los procesos de trabajo. Pruebe si la importación manual funciona ahora.

Problema 2: Se produce un error en la importación manual después de deshabilitar TLS 1.1 o TLS 1.0

TLS 1.1 y TLS 1.0 se están eliminando gradualmente porque se consideran inseguros. Después de deshabilitar estos protocolos, ya no puede importar actualizaciones. Sin embargo, la sincronización sigue funcionando.

Este problema se produce en servidores WSUS que ejecutan Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 o Windows Server 2019.

Solución del problema 2

WSUS registra qué versiones ssl/TLS están habilitadas cuando se inicia. Para determinar las versiones de SSL/TLS, siga estos pasos:

  1. Reinicie el servicio WSUS.

  2. Ejecute iisreset en un símbolo del sistema con privilegios elevados para forzar que WSUS pase por la secuencia de inicio.

  3. Abra la consola WSUS y conéctese al servidor.

  4. Abra %Program Files%\Update Services\LogFiles\SoftwareDistribution.log, busque las entradas que comienzan en el protocolo SCHANNEL. Debería ver entradas similares al ejemplo siguiente:

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

    Estas entradas muestran que TLS 1.1 y TLS 1.0 están deshabilitados y QUE TLS 1.2 está habilitado.

Si se produce un error en el proceso de importación, SoftwareDistribution.log registra la siguiente entrada de error:

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

En la captura de pantalla siguiente se muestra una captura de red del intento de conexión.

Captura de pantalla de la segunda captura de red.

En la captura de red, los fotogramas 1518-1520 muestran el protocolo de enlace triple (SYN, SYN ACK, ACK) entre el cliente y el servidor. Frame 1536 es un paquete ACK FIN del servidor WSUS.

WSUS cierra la conexión, ya que todos los protocolos que sabe usar para la importación (SSL3, TLS 1.0, TLS 1.1) están deshabilitados y no pueden usar TLS 1.2.

Resolución del problema 2

Este problema es similar al problema 1, en el que la importación de WSUS no puede usar TLS 1.2. Para corregir este problema, use resolución para el problema 1.

Problema 3: Se produce un error de sincronización en servidores WSUS de Windows Server 2012 y Windows Server 2012 R2 que solo aplican actualizaciones de solo seguridad

El mantenimiento de Windows Server 2012 y Windows Server 2012 R2 contienen las siguientes pistas de actualización:

WSUS en Windows Server 2012 y Windows Server 2012 R2 no pueden usar TLS 1.2 para la sincronización a menos que se instale uno de los siguientes paquetes acumulativos mensuales o un paquete acumulativo mensual posterior:

El cambio que permite que WSUS use TLS 1.2 es una corrección que no es de seguridad, solo se incluye en los paquetes acumulativos mensuales.

Algunos usuarios optan por instalar solo las actualizaciones de solo seguridad y nunca instalar los paquetes acumulativos mensuales. Por lo tanto, sus servidores WSUS no tienen instalada la actualización que habilita TLS 1.2. Después de cambiar el https://sws.update.microsoft.com punto de conexión para aceptar solo conexiones TLS 1.2, estos servidores WSUS ya no se pueden sincronizar con el punto de conexión. Este problema también se produce en un servidor WSUS recién instalado windows Server 2012 o Windows Server 2012 R2 WSUS que no haya instalado paquetes acumulativos mensuales.

Solución del problema 3

Si el servidor WSUS tiene instaladas las actualizaciones correctas, WSUS registrará qué versiones ssl/TLS están habilitadas cuando se inicie. Siga estos pasos en el servidor WSUS:

  1. Reinicie el servicio WSUS.

  2. Ejecute iisreset desde un símbolo del sistema con privilegios elevados para forzar que WSUS pase por la secuencia de inicio.

  3. Abra la consola WSUS y conéctese al servidor.

  4. Abra %Program Files%\Update Services\LogFiles\SoftwareDistribution.log, busque entradas que comiencen con el protocolo SCHANNEL. Debería ver entradas similares al ejemplo siguiente:

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

    Si no encuentra estas entradas, significa que la actualización que habilita TLS 1.2 no está instalada.

Cuando se produce un error en la sincronización, SoftwareDistribution.log registra el siguiente mensaje de error:

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)

En la captura de pantalla siguiente se muestra una captura de red del intento de conexión.

Captura de pantalla de la tercera captura de red.

En la captura de red, frame 95 es el paquete Client Hello que usa TLS 1.0. Frame 96 es el paquete RST de https://sws.update.microsoft.com. Dado que el punto de conexión solo admite conexiones TLS 1.2, deniega la conexión y, a continuación, emite una respuesta de restablecimiento. El servidor WSUS intentará varias veces antes de renunciar. Por lo tanto, esta secuencia se repite.

Resolución del problema 3

Para corregir este problema, instale el paquete acumulativo mensual más reciente para Windows Server 2012 o Windows Server 2012 R2. Aplique también la resolución del problema 1 para evitar el error de importación manual.

Problema 4: Se produce un error de sincronización después de julio de 2020 si WSUS está integrado con Configuration Manager

Muchas instalaciones de WSUS se integran con los puntos de actualización de software (SUP) de Microsoft Endpoint Configuration Manager. Después de julio de 2020, puedes experimentar errores de sincronización si Configuration Manager está configurado para sincronizar controladores surface.

Este problema se produce en servidores WSUS que ejecutan Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 o Windows Server 2019.

Solución del problema 4

Cuando se produce este problema, las entradas similares al ejemplo siguiente se registran en 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.

Además, el %Program Files\Update Services\LogFiles\SoftwareDistribution.log archivo registra los errores siguientes:

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

Estos errores indican que se cerró la conexión. Este problema se produce porque Configuration Manager usa la funcionalidad de importación de WSUS. Por lo tanto, tiene las mismas limitaciones.

Resolución del problema 4

Para corregir este problema, use resolución para el problema 1.

Problema 5: Se produce un error de sincronización después de julio de 2020 debido a cifrados limitados

Puede deshabilitar varios cifrados para proteger las conexiones TLS. A partir de julio de 2020, los servidores WSUS ya no se pueden sincronizar con WU/MU. Además, cuando https://sws.update.microsoft.com se cambia para aceptar solo conexiones TLS 1.2, se quitan algunos cifrados.

Este problema se produce en servidores WSUS que ejecutan Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 o Windows Server 2019.

Solución del problema 5

El %Program Files\Update Services\LogFiles\SoftwareDistribution.log archivo registra los siguientes errores al 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

Sin embargo, estas entradas no son útiles para determinar si tiene un problema de cifrado.

En esta situación, use una captura de red o compruebe los objetos de directiva de grupo (GPO) aplicados. Para comprobar los GPO aplicados, ejecute el siguiente comando en un símbolo del sistema con privilegios elevados:

gpresult /scope computer /h GPReport.html

Abra GPReport.html en un explorador.

Captura de pantalla de la información de directiva de grupo.

Busque el orden del conjunto de cifrado SSL y el valor conjuntos de cifrado SSL. Normalmente, esta configuración no está configurada. Si está configurado, puede producirse el problema porque no hay ningún cifrado común con WU/MU.

A partir de agosto de 2020, https://sws.update.microsoft.com admite los siguientes cifrados:

  • 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

Nota:

Esta lista cambiará con el tiempo porque los cifrados aumentarán gradualmente a medida que mejora la tecnología.

Si se aplica el GPO y no especifica uno de estos cifrados, se produce un error en la comunicación con WU/MU.

En la captura de pantalla siguiente se muestra una captura de red.

Captura de pantalla de la cuarta captura de red.

En la captura de red, frame 400 es el paquete Client Hello que usa TLS 1.2. En el detalle del marco se muestran los cifrados enviados por el cliente. Frame 404 es el paquete RST de https://sws.update.microsoft.com. Dado que no hay ningún cifrado común, se produce un error en la sincronización.

Resolución del problema 5

Siga estos pasos para solucionar este problema:

  1. Use la salida de gpresult para determinar el GPO que especifica el orden del conjunto de cifrado SSL y, a continuación, quite el GPO. O cámbielo para incluir cifrados admitidos por https://sws.update.microsoft.com.

    Para Windows Server 2016 y Windows Server 2019, incluya uno de los siguientes cifrados:

    • 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 y 2012 R2, incluya uno de los siguientes cifrados:

    • 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. Si el GPO no establece los cifrados, busque la siguiente subclave del Registro:

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

    Agregue uno de los cifrados necesarios al valor Functions de la clave del Registro.

  3. Reinicie el servidor WSUS.

Para evitar errores de importación manual, aplique también resolución para el problema 1.

Una conexión correcta

Las capturas de pantalla siguientes muestran una conexión correcta cuando un servidor WSUS de Windows Server 2016 sincroniza las actualizaciones.

Captura de pantalla de la quinta captura de red.

Captura de pantalla de la sexta captura de red.

En la captura de red, frame 191 es el paquete Client Hello que usa TLS 1.2. En el detalle del marco se muestran los cifrados enviados por el cliente. Frame 195 es el paquete Server Hello del punto de conexión. TlsCipherSuite elegido por WU es TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384. El certificado de servidor también se envía en el paquete Server Hello.

La configuración de conexión adicional se produce en fotogramas 196-203. La transferencia de datos por la aplicación (WSUS) y el https://sws.update.microsoft.com punto de conexión comienzan en el marco 207.

Una nota sobre los servidores proxy

Si usa un servidor proxy, la captura de red tendrá un aspecto diferente. El servidor WSUS se conecta al proxy y puede ver una solicitud CONNECT con el destino https://sws.update.microsoft.com, https://sws1.update.microsoft.como https://fe2.update.microsoft.com. WSUS emitirá un paquete Hello de cliente con los cifrados que admite. Si la conexión no se realiza correctamente debido a una versión incorrecta de TLS o si no hay ningún cifrado común, es posible que vea o no un paquete RST. Los servidores proxy tienden a devolver un FIN al cliente para indicar el final de la conexión. Pero esto podría no ser cierto para cada servidor proxy. Algunos servidores proxy envían un paquete RST o algo más.

Cuando se usa un proxy, debe conocer la dirección IP de la interfaz interna del servidor proxy, ya que WSUS no se comunica directamente con los puntos de conexión de WU. Si no puede obtener la dirección IP del servidor proxy, busque la captura de red para las solicitudes CONNECT y busque la dirección URL del punto de conexión de Windows Update.

Referencias