Ostrzeżenie narzędzia NuGet NU3042
NuGet 6.6.0 lub nowszy tylko w systemach Linux i macOS
Następujący certyfikat główny X.509 jest niezaufany, ponieważ nie znajduje się w pakiecie certyfikatów w <ścieżce> pliku. Aby uzyskać więcej informacji, zobacz dokumentację dla pakietu NU3042.
Podmiot: <podmiot certyfikatu>
Odcisk palca (SHA-256): <odcisk palca certyfikatu>
Certyfikat (PEM):
<Certyfikat zakodowany w formacie PEM>
Problem
Ostrzeżenie NU3042 jest zgłaszane, gdy weryfikacja podpisanego pakietu nie powiodła się, ponieważ nie znaleziono certyfikatu głównego w odpowiednim pakiecie zaufanego certyfikatu głównego, podpisywania kodu lub sygnatury czasowej. To ostrzeżenie zostanie zgłoszone tylko w systemach Linux i macOS po włączeniu weryfikacji podpisanego pakietu, nigdy w systemie Windows. Pakiet NU3042 powinien towarzyszyć nu3018 lub NU3028.
Każda wersja zestawu .NET 7+ SDK zawiera dwa pakiety certyfikatów głównych pochodzące z zaufanego programu głównego firmy Microsoft. Jeden pakiet certyfikatów zawiera wszystkie zaufane katalogi główne prawidłowe do podpisywania kodu, a drugi zawiera wszystkie zaufane katalogi główne prawidłowe do znaczników czasu. Program NuGet używa tych pakietów certyfikatów w systemach Linux i macOS po włączeniu weryfikacji podpisanego pakietu.
W systemie Linux pakiet nuGet preferuje pakiet certyfikatów podpisywania kodu dla całego systemu za pośrednictwem pakietu certyfikatu podpisywania kodu zestawu SDK platformy .NET.
Główna przyczyna rozwiązania NU3042 jest prawdopodobnie jedną z następujących przyczyn:
- (Tylko system Linux) Pakiet certyfikatu podpisywania kodu całego systemu nie zawiera certyfikatu głównego, do których odwołuje się ostrzeżenie.
- Pakiety certyfikatów zestawu .NET SDK są nieaktualne.
Aby uzyskać więcej informacji, zobacz Weryfikacja podpisanych pakietów NuGet.
Rozwiązanie
W systemie Linux, jeśli ufasz certyfikatowi i używasz pakietu certyfikatu podpisywania kodu dla całego systemu, rozważ dodanie certyfikatu głównego do pakietu. To rozwiązanie może nie być odpowiednie, ponieważ przyzna zaufanie całemu systemowi.
Jeśli pakiety certyfikatów zestawu SDK platformy .NET są nieaktualne, zaktualizuj go do nowszej wersji zestawu .NET SDK.
Jeśli wszystko inne nie powiedzie się, zrezygnuj z weryfikacji podpisanego pakietu, ustawiając zmienną środowiskową na false
i DOTNET_NUGET_SIGNATURE_VERIFICATION
otwierając problem z zespołem NuGet, aby zasugerować, jak można ulepszyć weryfikację podpisanego pakietu na platformie.
Aby uzyskać więcej informacji, zobacz Weryfikacja podpisanych pakietów NuGet.