Aviso do NuGet NU3042
NuGet 6.6.0+ no Linux e no macOS apenas
O certificado raiz X.509 a seguir não é confiável porque não está presente no pacote de certificados no <caminho do arquivo>. Para obter mais informações, consulte a documentação para o NU3042.
Assunto: <assunto do certificado>
Impressão digital (SHA-256): <impressão digital do certificado>
Certificado (PEM):
<Certificado codificado em PEM>
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.