NuGet-Warnung NU3042
NuGet 6.6.0+ nur unter Linux und macOS
The following X.509 root certificate is untrusted because it is not present in the certificate bundle at <file-path>. For more information, see documentation for NU3042. Subject: <certificate subject> Fingerprint (SHA-256): <certificate fingerprint> Certificate (PEM): <PEM-encoded certificate>
Abgang
Warnung NU3042 wird ausgelöst, wenn die Überprüfung des signierten Pakets fehlgeschlagen ist, da ein Stammzertifikat im entsprechenden vertrauenswürdigen Stammzertifikat-Bundle nicht gefunden wurde, entweder Codesignatur oder Zeitstempel. Diese Warnung wird nur unter Linux und macOS ausgelöst, wenn die Überprüfung signierter Pakete aktiviert ist, niemals unter Windows. NU3042 sollte ein NU3018 oder NU3028 begleiten.
Jede .NET-7+-SDK-Version enthält zwei Stammzertifikat-Bundle, die aus dem vertrauenswürdigen Microsoft-Root-Programm stammen. Ein Zertifikatbundle enthält alle vertrauenswürdigen Wurzeln, die für die Codesignierung gültig sind, während die andere alle vertrauenswürdigen Wurzeln enthält, die für das Zeitstempeln gültig sind. NuGet verwendet diese Zertifikatpakete unter Linux und macOS, wenn die Überprüfung signierter Pakete aktiviert ist.
Unter Linux bevorzugt NuGet ein systemweites Code Signing Certificate Bundle gegenüber dem Code Signing Certificate Bundle des .NET SDK.
Die Grundursache für NU3042 ist wahrscheinlich eine der folgenden:
- (Nur Linux) Das systemweite Codesignaturzertifikat-Bundle enthält nicht das Stammzertifikat, auf das in der Warnung verwiesen wird.
- Die Zertifikatpakete des .NET SDK sind veraltet.
Weitere Informationen finden Sie unter Überprüfung von signierten NuGet-Paketen.
Lösung
Wenn Sie unter Linux dem Zertifikat vertrauen und ein systemweites Codesignaturzertifikat-Bundle verwenden, sollten Sie das Stammzertifikat zum Bundle hinzufügen. Diese Lösung ist möglicherweise nicht geeignet, da sie systemweites Vertrauen gewährt.
Wenn die Zertifikatpakete des .NET SDK veraltet sind, aktualisieren Sie auf eine neuere Version des .NET SDK.
Wenn alles andere fehlschlägt, kündigen Sie die Überprüfung des signierten Pakets, indem Sie die Umgebungsvariable DOTNET_NUGET_SIGNATURE_VERIFICATION
auf false
setzen und öffnen Sie eine Anfrage an das NuGet-Team, um vorzuschlagen, wie die Überprüfung von signierten Paketen auf Ihrer Plattform verbessert werden kann.
Weitere Informationen finden Sie unter Überprüfung von signierten NuGet-Paketen.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für