Aviso do NuGet NU3042

NuGet 6.6.0+ no Linux e no macOS apenas

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>

Problema

O aviso NU3042 é gerado quando a verificação do pacote assinado falhou porque um certificado raiz não foi encontrado no pacote de certificados raiz confiável, assinatura de código ou carimbo de data/hora apropriado. Esse aviso só será gerado no Linux e no macOS quando a verificação do pacote assinado estiver ativada, nunca no Windows. O NU3042 deve acompanhar um NU3018 ou NU3028.

Cada versão do SDK do .NET 7+ contém dois pacotes de certificados raiz originados do Programa raiz confiável da Microsoft. Um pacote de certificados contém todas as raízes confiáveis válidas para assinatura de código, enquanto o outro contém todas as raízes confiáveis válidas para carimbo de data/hora. O NuGet usa esses pacotes de certificados no Linux e no macOS quando a verificação de pacotes assinados está ativada.

No Linux, o NuGet vai preferir um pacote de certificado de autenticação de código de todo o sistema a um pacote de certificado de autenticação de código de SDK do .NET.

A causa raiz para NU3042 provavelmente é uma das seguintes:

  • (Somente Linux) O pacote de certificados de autenticação de código em todo o sistema não contém o certificado raiz mencionado no aviso.
  • Os pacotes de certificados do SDK do .NET estão desatualizados.

Para obter mais informações, consulte Verificação de pacote assinado pelo NuGet.

Solução

No Linux, se você confiar no certificado e estiver usando um pacote de certificados de autenticação de código em todo o sistema, considere adicionar o certificado raiz ao pacote. Essa solução pode não ser adequada porque concederá confiança a todo o sistema.

Se os pacotes de certificados do SDK do .NET estiverem desatualizados, atualize para uma versão mais recente do SDK do .NET.

Se tudo mais falhar, desative a verificação de pacote assinado definindo a variável de ambiente DOTNET_NUGET_SIGNATURE_VERIFICATION como false e abra um problema com a equipe do NuGet para sugerir como a verificação de pacote assinado pode ser melhorada em sua plataforma.

Para obter mais informações, consulte Verificação de pacote assinado pelo NuGet.