다음을 통해 공유


NuGet 서명 패키지 확인 옵션

신뢰할 수 없는 루트 오류 다시 시도

참고 항목

이 문제는 Microsoft 신뢰할 수 있는 루트 프로그램의 루트 인증서에 대한 Windows에만 적용됩니다.

인증서 체인을 빌드하는 동안 Windows는 처음 사용할 때 관련 타사 루트 인증서를 가져와 로컬로 신뢰할 수 있는 루트 인증서로 추가합니다. 내부적으로 Windows는 RPC 호출을 사용하여 이 네트워크 페치를 시작하고 시스템이 충분히 사용 중인 경우 이 RPC 호출이 실패할 수 있습니다. 이 오류로 인해 루트 인증서가 로컬로 신뢰할 수 없습니다. 이 문제는 루트 인증서가 처음으로 관찰될 때 발생할 수 있지만 루트 인증서를 로컬로 신뢰할 수 있으면 해당 인증서에 대해 문제가 재발하지 않습니다. 일반적으로 체인 빌드는 재시도로 성공합니다.

NuGet 사용자의 경우 이 문제의 증상은 일반적으로 NuGet 작업이 재시도에 성공하고 다음 중 하나에 성공한다는 것입니다.

  • NU3028 에는 "인증 체인이 올바르게 처리되었지만 트러스트 공급자가 신뢰하지 않는 루트 인증서에서 종료되었습니다."와 같은 메시지가 표시됩니다.
  • NU3037 에는 "리포지토리 기본 서명 유효 기간이 만료되었습니다."와 같은 메시지가 표시됩니다.

참고 항목

이 옵션은 NuGet 6.0.0부터 사용할 수 있으며 위에서 설명한 Windows 관련 오류에만 적용됩니다. 이 옵션은 다른 시나리오에는 적용되지 않으며 Linux 또는 macOS에는 영향을 주지 않습니다.

NuGet 6.8.0 및 .NET 8 SDK 이전에는 이 옵션이 기본적으로 사용하지 않도록 설정됩니다.

NuGet 6.8.0 및 .NET 8 SDK부터 이 옵션은 Windows에서 기본적으로 사용하도록 설정됩니다. 기본값을 재정의 3,1000 하거나 옵트아웃하려는 경우가 아니면 환경 변수를 명시적으로 설정할 필요가 없습니다. 옵트아웃하려면 환경 변수를 값 0으로 설정합니다.

다시 시도 횟수와 절전 간격을 각각 밀리초 단위로 나타내는 쉼표로 구분된 양수 2로 구성된 값으로 명명 NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY 된 환경 변수를 설정하여 Windows에서 신뢰할 수 없는 루트 오류에 대해 실험적이고 자동 재시도를 사용하도록 설정할 수 있습니다. 적합한 값을 선택해야 합니다.

예를 들어 환경 변수를 다음과 같은 값 3,1000 으로 설정합니다.

set NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY=3,1000

... 는 각 시도 사이에 1초(1,000ms)로 최대 4회(초기 시도 및 3회 재시도)를 시도합니다.