다음을 통해 공유


WSUS 동기화 및 가져오기 문제 해결

적용 대상: Windows Server Update Services

2020년 7월부터 사용자는 WINDOWS 업데이트(WU) 또는 MU(Microsoft Update) 엔드포인트에서 WSUS 동기화 및 가져오기 문제가 발생했습니다.

이 문서에서는 몇 가지 일반적인 문제를 해결하는 방법을 설명합니다. 다른 많은 문제에도 이러한 문제 해결 기술(예: 네트워크 캡처)을 사용할 수 있습니다.

엔드포인트

현재 WSUS는 다음 엔드포인트를 사용하여 메타데이터를 동기화합니다.

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

    대부분의 WSUS 서버는 이 새 엔드포인트와 동기화되어야 합니다. 2020년 7월부터 이 엔드포인트는 TLS(전송 계층 보안) 1.2 연결만 허용합니다. 그리고 일부 암호는 비활성화되었습니다.

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

    이 이전 엔드포인트는 결국 서비스 해제됩니다. 자세한 내용은 WSUS 3.0 SP2에 대한 동기화 종료를 참조 하세요. 이 엔드포인트는 TLS 1.2, TLS 1.1 및 TLS 1.0 연결을 지원합니다.

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

    이 이전 엔드포인트는 WSUS 동기화 엔드포인트로 서비스 해제되고 연결이 실패합니다. 그러나 Microsoft 업데이트와 동기화하도록 구성된 Windows 업데이트 클라이언트는 이 엔드포인트를 계속 사용할 수 있습니다.

WSUS 동기화 또는 수동 가져오기 문제가 발생하는 경우 먼저 동기화 중인 엔드포인트를 확인합니다.

  1. WSUS 서버에서 관리자 권한 PowerShell 명령 프롬프트 창을 엽니다.

  2. 현재 동기화 엔드포인트를 찾으려면 다음 PowerShell 스크립트를 실행합니다.

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

엔드포인트를 사용하도록 https://sws.update.microsoft.com Windows Server 2012 이상 버전을 구성해야 합니다. 계속 사용하거나 https://fe2.update.microsoft.com사용하는 https://sws1.update.microsoft.com 경우 SoapException과 함께 WSUS 동기화에 실패하는 단계를 수행하여 새 엔드포인트로 변경합니다. 필요한 경우 엔드포인트와의 https://sws.update.microsoft.com 연결 문제를 해결합니다.

문제 1: 수동 가져오기가 실패하지만 동기화에 성공함

많은 사용자가 수동으로 WSUS로 업데이트를 가져오며 일부 업데이트를 수동으로 가져와야 합니다. 예를 들어 월의 세 번째 및 네 번째 주에 릴리스된 미리 보기 업데이트를 수동으로 가져와야 합니다. 2020년 7월 말부터 업데이트를 수동으로 가져올 수 없습니다.

업데이트 가져오기 실패 스크린샷

그러나 일부 WSUS 서버는 업데이트를 성공적으로 가져올 수 있습니다. 그리고 WU 및 MU와의 일반적인 동기화는 계속 작동합니다.

이 문제는 Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 또는 Windows Server 2019를 실행하는 WSUS 서버에서 발생합니다.

문제 해결 1

  1. 엔드포인트에서 PowerShell 스크립트를 실행하여 WSUS 서버에서 사용하는 엔드포인트를 확인합니다. 작업 서버가 통신 중이거나 https://sws1.update.microsoft.com실패하는 서버와 https://fe2.update.microsoft.com 통신하고 https://sws.update.microsoft.com있는 것을 알 수 있습니다.

  2. %Program Files%\Update Services\LogFiles\SoftwareDistribution.log 업데이트를 수동으로 가져올 때 오류가 있는지 파일을 확인합니다. 다음 예제와 유사한 오류를 찾습니다.

    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)
    

오류의 다음 메시지는 WSUS 서버가 TLS를 사용하여 WU/MU와 연결하려고 했지만 WU/MU가 연결을 닫았음을 나타냅니다.

현재 연결은 원격 호스트에 의해 강제로 끊겼습니다.

다음 스크린샷은 연결 시도의 네트워크 캡처를 보여줍니다.

연결 시도의 첫 번째 네트워크 캡처 스크린샷

네트워크 캡처에서 프레임 874는 TLS 1.0을 사용하는 클라이언트 Hello 패킷입니다. 프레임 877은 서버 응답입니다. 응답에는 ACK(A) 및 RST(R) 플래그가 포함됩니다. 엔드포인트는 https://sws.update.microsoft.com TLS 1.2 연결만 지원하므로 연결을 거부하고 다시 설정 응답을 실행합니다.

문제 해결 1

이 문제는 WSUS 가져오기 기능이 TLS 1.2를 사용할 수 없기 때문에 발생합니다.

이 문제를 해결하려면 다음 방법 중 하나를 사용하십시오.

  • 레지스트리 키를 사용하여 TLS 1.2를 사용하도록 .NET Framework를 구성합니다.

    레지스트리 키를 설정하려면 강력한 암호화 구성을 참조 하세요. 레지스트리 키를 설정한 후 서버를 다시 시작합니다.

  • w3wp.exe.config 파일을 만들거나 업데이트하여 TLS 1.2를 사용하도록 설정합니다.

    참고 항목

    이 변경 내용은 WSUS용인지 여부에 관계없이 생성된 모든 w3wp.exe 인스턴스에 적용됩니다. W3wp.exe 원격 쪽에서 이 버전을 지원하는 경우 TLS 1.2를 사용합니다. TLS 1.1 및 TLS 1.0을 사용하는 경우 대상 사이트에서 TLS 1.2를 지원하지 않는 경우 W3wp.exe 이러한 프로토콜을 협상합니다.

    %SystemRoot%\system32\inetsrv\w3wp.exe.config 파일이 없는 경우 다음 단계를 수행합니다.

    1. 폴더에 W3wp.exe.config %SystemRoot%\system32\inetsrv 라는 새 파일을 만듭니다.

    2. 메모장과 같은 텍스트 편집기에서 파일을 엽니다.

    3. 파일에 다음 줄을 추가한 다음 파일을 저장합니다.

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

    %SystemRoot%\system32\inetsrv\w3wp.exe.config 파일이 이미 있는 경우 다음 단계를 수행합니다.

    1. 메모장 또는 다른 텍스트 편집기에서 파일을 엽니다.

    2. 구성> 요소 바로 아래에 다음 줄을 추가한 <다음 파일을 저장합니다.

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

    W3wp.exe.config 파일을 만들거나 업데이트한 후 관리자 권한 명령 프롬프트 창을 연 다음 실행하여 모든 작업자 프로세스를 다시 시작 iisreset 합니다. 이제 수동 가져오기가 작동하는지 테스트합니다.

문제 2: TLS 1.1 또는 TLS 1.0을 사용하지 않도록 설정한 후 수동 가져오기 실패

TLS 1.1 및 TLS 1.0은 안전하지 않은 것으로 간주되어 단계적으로 폐지되고 있습니다. 이러한 프로토콜을 사용하지 않도록 설정하면 더 이상 업데이트를 가져올 수 없습니다. 그러나 동기화는 계속 작동합니다.

이 문제는 Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 또는 Windows Server 2019를 실행하는 WSUS 서버에서 발생합니다.

문제 해결 2

WSUS는 SSL/TLS 버전이 시작될 때 사용하도록 설정된 버전을 기록합니다. SSL/TLS 버전을 확인하려면 다음 단계를 수행합니다.

  1. WSUS 서비스를 다시 시작합니다.

  2. 관리자 권한 명령 프롬프트에서 실행 iisreset 하여 WSUS가 시작 시퀀스를 통과하도록 합니다.

  3. WSUS 콘솔을 열고 서버에 연결합니다.

  4. 열고 %Program Files%\Update Services\LogFiles\SoftwareDistribution.logSCHANNEL 프로토콜에서 시작하는 항목을 찾습니다. 다음 예제와 유사한 항목이 표시됩니다.

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

    이러한 항목은 TLS 1.1 및 TLS 1.0이 비활성화되고 TLS 1.2가 사용하도록 설정되어 있음을 보여 줍니다.

가져오기 프로세스가 실패하면 SoftwareDistribution.log 다음 오류 항목을 기록합니다.

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

다음 스크린샷은 연결 시도의 네트워크 캡처를 보여줍니다.

두 번째 네트워크 캡처의 스크린샷.

네트워크 캡처에서 프레임 1518-1520은 클라이언트와 서버 간의 3방향 핸드셰이크(SYN, SYN ACK, ACK)를 표시합니다. 프레임 1536은 WSUS 서버의 ACK FIN 패킷입니다.

가져오기에 사용하는 방법을 알고 있는 모든 프로토콜(SSL3, TLS 1.0, TLS 1.1)이 비활성화되어 TLS 1.2를 사용할 수 없으므로 WSUS는 연결을 닫습니다.

문제 해결 2

이 문제는 WSUS 가져오기에서 TLS 1.2를 사용할 수 없는 문제 1과 유사합니다. 이 문제를 해결하려면 문제 1에 대한 해결 방법을 사용합니다.

문제 3: 보안 전용 업데이트만 적용하는 Windows Server 2012 및 Windows Server 2012 R2 WSUS 서버에서 동기화 실패

Windows Server 2012 및 Windows Server 2012 R2 서비스에는 다음 업데이트 트랙이 포함되어 있습니다.

다음 월별 롤업 또는 이후 월별 롤업 중 하나가 설치되어 있지 않으면 Windows Server 2012 및 Windows Server 2012 R2의 WSUS는 동기화에 TLS 1.2를 사용할 수 없습니다.

WSUS에서 TLS 1.2를 사용할 수 있도록 하는 변경 내용은 비보안 수정 사항이며 월별 롤업에만 포함됩니다.

일부 사용자는 보안 전용 업데이트만 설치하고 월별 롤업을 설치하지 않습니다. 따라서 WSUS 서버에는 TLS 1.2를 설치할 수 있는 업데이트가 없습니다. https://sws.update.microsoft.com 엔드포인트가 TLS 1.2 연결만 허용하도록 변경된 후 이러한 WSUS 서버는 더 이상 엔드포인트와 동기화할 수 없습니다. 이 문제는 월별 롤업을 설치하지 않은 새로 설치된 Windows Server 2012 또는 Windows Server 2012 R2 WSUS 서버에서도 발생합니다.

문제 해결 3

WSUS 서버에 올바른 업데이트가 설치되어 있는 경우 WSUS는 시작할 때 사용하도록 설정된 SSL/TLS 버전을 기록합니다. WSUS 서버에서 다음 단계를 수행합니다.

  1. WSUS 서비스를 다시 시작합니다.

  2. 관리자 권한 명령 프롬프트에서 실행 iisreset 하여 WSUS가 시작 시퀀스를 통과하도록 합니다.

  3. WSUS 콘솔을 열고 서버에 연결합니다.

  4. 열고 %Program Files%\Update Services\LogFiles\SoftwareDistribution.logSCHANNEL 프로토콜시작하는 항목을 검색합니다. 다음 예제와 유사한 항목이 표시됩니다.

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

    이러한 항목을 찾을 수 없는 경우 TLS 1.2를 사용하도록 설정하는 업데이트가 설치되지 않음을 의미합니다.

동기화에 실패하면 SoftwareDistribution.log 다음 오류 메시지를 기록합니다.

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)

다음 스크린샷은 연결 시도의 네트워크 캡처를 보여줍니다.

세 번째 네트워크 캡처의 스크린샷.

네트워크 캡처에서 프레임 95는 TLS 1.0을 사용하는 클라이언트 Hello 패킷입니다. 프레임 96은 .의 https://sws.update.microsoft.comRST 패킷입니다. 엔드포인트는 TLS 1.2 연결만 지원하므로 연결을 거부하고 다시 설정 응답을 실행합니다. WSUS 서버는 포기하기 전에 여러 번 시도합니다. 따라서 이 시퀀스는 반복됩니다.

문제 해결 3

이 문제를 해결하려면 Windows Server 2012 또는 Windows Server 2012 R2에 대한 최신 월별 롤업을 설치합니다. 또한 수동 가져오기 실패를 방지하기 위해 문제 1에 대한 해결 방법을 적용합니다.

문제 4: WSUS가 Configuration Manager와 통합된 경우 2020년 7월 이후에 동기화 실패

많은 WSUS 설치가 Microsoft Endpoint Configuration Manager SUP(소프트웨어 업데이트 지점)와 통합됩니다. 2020년 7월 이후에 Configuration Manager가 Surface 드라이버를 동기화하도록 구성된 경우 동기화 오류가 발생할 수 있습니다.

이 문제는 Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 또는 Windows Server 2019를 실행하는 WSUS 서버에서 발생합니다.

문제 해결 4

이 문제가 발생하면 다음 예제와 유사한 항목이 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.

또한 파일은 %Program Files\Update Services\LogFiles\SoftwareDistribution.log 다음 오류를 기록합니다.

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

이러한 오류는 연결이 닫혔음을 나타냅니다. 이 문제는 Configuration Manager가 WSUS 가져오기 기능을 사용하기 때문에 발생합니다. 따라서 동일한 제한 사항이 있습니다.

문제 해결 4

이 문제를 해결하려면 문제 1에 대한 해결 방법을 사용합니다.

문제 5: 제한된 암호화로 인해 2020년 7월 이후에 동기화 실패

TLS 연결을 보호하기 위해 다양한 암호화를 사용하지 않도록 설정할 수 있습니다. 2020년 7월부터 WSUS 서버는 더 이상 WU/MU와 동기화할 수 없습니다. https://sws.update.microsoft.com 또한 TLS 1.2 연결만 허용하도록 변경되면 일부 암호가 제거됩니다.

이 문제는 Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 또는 Windows Server 2019를 실행하는 WSUS 서버에서 발생합니다.

문제 해결 5

이 파일은 %Program Files\Update Services\LogFiles\SoftwareDistribution.log 동기화할 때 다음 오류를 기록합니다.

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

그러나 이러한 항목은 암호화 문제가 있는지 여부를 확인하는 데 유용하지 않습니다.

이 경우 네트워크 캡처를 사용하거나 적용된 GPO(그룹 정책 개체)를 확인합니다. 적용된 GPO를 확인하려면 관리자 권한 명령 프롬프트에서 다음 명령을 실행합니다.

gpresult /scope computer /h GPReport.html

브라우저에서 GPReport.html 엽니다.

그룹 정책 정보의 스크린샷.

SSL 암호 그룹 순서SSL 암호 그룹 설정을 검색합니다. 일반적으로 이 설정은 구성되지 않습니다. 구성된 경우 WU/MU에 공통 암호가 없기 때문에 문제가 발생할 수 있습니다.

2020년 8월 현재 다음 https://sws.update.microsoft.com 암호화를 지원합니다.

  • 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

참고 항목

이 목록은 기술이 개선됨에 따라 암호화가 점차 약해지기 때문에 시간이 지남에 따라 변경됩니다.

GPO가 적용되고 이러한 암호화 중 하나를 지정하지 않으면 WU/MU와의 통신이 실패합니다.

다음 스크린샷은 네트워크 캡처를 보여줍니다.

네 번째 네트워크 캡처의 스크린샷.

네트워크 캡처에서 프레임 400은 TLS 1.2를 사용하는 클라이언트 Hello 패킷입니다. 프레임 세부 정보는 클라이언트에서 보낸 암호화를 보여 줍니다. 프레임 404는 .의 https://sws.update.microsoft.comRST 패킷입니다. 일반적인 암호가 없으므로 동기화가 실패합니다.

문제 해결 5

이 문제를 해결하려면 다음 단계를 수행합니다.

  1. 출력 gpresult 을 사용하여 SSL 암호 그룹 순서를 지정하는 GPO를 확인한 다음 GPO를 제거합니다. 또는 에서 지원하는 https://sws.update.microsoft.com암호화를 포함하도록 변경합니다.

    Windows Server 2016 및 Windows Server 2019의 경우 다음 암호화 중 하나를 포함합니다.

    • 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

    Windows Server 2012 및 2012 R2의 경우 다음 암호 중 하나를 포함합니다.

    • 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. GPO에서 암호화를 설정하지 않은 경우 다음 레지스트리 하위 키를 찾습니다.

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

    레지스트리 키의 Functions 값에 필요한 암호화 중 하나를 추가합니다.

  3. WSUS 서버를 다시 시작합니다.

수동 가져오기 오류를 방지하려면 문제 1에 대한 해결 방법도 적용합니다.

연결 성공

다음 스크린샷은 Windows Server 2016 WSUS 서버가 업데이트를 동기화할 때 성공적인 연결을 보여 줍니다.

다섯 번째 네트워크 캡처의 스크린샷.

여섯 번째 네트워크 캡처의 스크린샷.

네트워크 캡처에서 프레임 191은 TLS 1.2를 사용하는 클라이언트 Hello 패킷입니다. 프레임 세부 정보는 클라이언트에서 보낸 암호화를 보여 줍니다. 프레임 195는 엔드포인트의 Server Hello 패킷입니다. WU에서 선택한 TLSCipherSuite는 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384. 서버 인증서도 Server Hello 패킷으로 전송됩니다.

추가 연결 설정은 프레임 196-203에서 발생합니다. 그런 다음, 애플리케이션(WSUS)과 https://sws.update.microsoft.com 엔드포인트에 의한 데이터 전송이 프레임 207에서 시작됩니다.

프록시 서버에 대한 참고 사항

프록시 서버를 사용하는 경우 네트워크 캡처가 다르게 표시됩니다. WSUS 서버가 프록시에 연결되고 대상https://sws.update.microsoft.comhttps://sws1.update.microsoft.com을 사용하는 CONNECT 요청 또는 https://fe2.update.microsoft.com. WSUS는 지원하는 암호화를 사용하여 클라이언트 Hello 패킷을 발급합니다. 잘못된 TLS 버전으로 인해 연결이 성공하지 못하거나 일반적인 암호가 없는 경우 RST 패킷이 표시되거나 표시되지 않을 수 있습니다. 프록시는 연결의 끝을 나타내기 위해 클라이언트에 FIN을 반환하는 경향이 있습니다. 그러나 모든 프록시 서버에서는 그렇지 않을 수 있습니다. 일부 프록시 서버는 RST 패킷 또는 다른 항목을 보냅니다.

프록시를 사용하는 경우 WSUS가 WU 엔드포인트와 직접 통신하지 않으므로 프록시 서버의 내부 인터페이스 IP 주소를 알아야 합니다. 프록시 서버의 IP 주소를 가져올 수 없는 경우 네트워크 캡처에서 CONNECT 요청을 검색하고 Windows 업데이트 엔드포인트의 URL을 검색합니다.

참조