Upozornění NuGet NU3042

Pouze NuGet 6.6.0 a novější v Linuxu a 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>

Problém

Upozornění NU3042 se vyvolá při neúspěšném ověření podepsaného balíčku, protože kořenový certifikát nebyl nalezen v příslušné sadě důvěryhodných kořenových certifikátů, a to buď podepisování kódu, nebo časové razítko. Toto upozornění se vyvolá jenom v Linuxu a macOS, pokud je povolené ověření podepsaného balíčku, nikdy ve Windows. NU3042 by měl být připojen k NU3018 nebo NU3028.

Každá verze sady .NET 7+ SDK obsahuje dvě sady kořenových certifikátů zdrojové z důvěryhodného kořenového programu Microsoftu. Jedna sada certifikátů obsahuje všechny důvěryhodné kořeny platné pro podepisování kódu, zatímco druhá obsahuje všechny důvěryhodné kořeny platné pro časové razítko. NuGet používá tyto sady certifikátů v Linuxu a macOS, když je povolené ověření podepsaného balíčku.

V Linuxu bude NuGet upřednostňovat sadu podpisových certifikátů kódu pro celý systém než sadu podpisových certifikátů sady .NET SDK.

Hlavní příčinou NU3042 je pravděpodobně jedna z následujících příčin:

  • (jenom Linux) Sada podpisových certifikátů pro celý systém neobsahuje kořenový certifikát odkazovaný v upozornění.
  • Sady .NET SDK jsou zastaralé.

Další informace najdete v tématu Ověření podepsaného balíčku NuGet.

Řešení

Pokud v Linuxu důvěřujete certifikátu a používáte sadu podpisových certifikátů pro celý systém, zvažte přidání kořenového certifikátu do sady. Toto řešení nemusí být vhodné, protože udělí systémovou důvěru.

Pokud jsou sady certifikátů sady .NET SDK zastaralé, aktualizujte na novější verzi sady .NET SDK.

Pokud všechno ostatní selže, odhlaste se od ověření podepsaného balíčku tím, že nastavíte proměnnou prostředí na false problém DOTNET_NUGET_SIGNATURE_VERIFICATION s týmem NuGet a navrhnete, jak se dá na vaší platformě vylepšit ověření podepsaného balíčku.

Další informace najdete v tématu Ověření podepsaného balíčku NuGet.