Freigeben über


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.