Partager via


Avertissement NuGet NU3042

NuGet 6.6.0+ sous Linux et macOS uniquement

Le certificat racine X.509 suivant n’est pas approuvé, car il n’est pas présent dans le regroupement de certificats sur le <chemin d'accès au fichier>. Pour plus d'informations, consultez la documentation pour NU3042.
    Objet : <objet du certificat>
    Empreinte digitale (SHA-256) : <empreinte digitale du certificat>
    Certificat (PEM) :
<Certificat encodé PEM>

Problème

L’avertissement NU3042 est déclenché lorsque la vérification du package signé a subi un échec, car aucun certificat racine n’a été trouvé dans le regroupement approprié de certificats racines approuvés, soit la signature de code ou l’horodateur. Cet avertissement est déclenché uniquement sous Linux et macOS lorsque la vérification du package signé est activée, jamais sous Windows. NU3042 doit accompagner NU3018 ou NU3028.

Chaque version du Kit de développement logiciel (SDK) .NET 7+ contient deux regroupements de certificats racines sources à partir du programme racine approuvé Microsoft. Un seul regroupement de certificats contient toutes les racines approuvées valides pour la signature de code, tandis que l’autre contient toutes les racines approuvées valides pour l’horodateur. NuGet utilise ces regroupements de certificats sous Linux et macOS lorsque la vérification du package signé est activée.

Sous Linux, NuGet préfère un regroupement de certificats de signature de code au niveau du système au regroupement de certificats de signature de code du du kit Kit de développement logiciel (SDK) .NET.

La cause racine de NU3042 est probablement l’une des suivantes :

  • (Linux uniquement) Le regroupement de certificats de signature de code à l’échelle du système ne contient pas le certificat racine référencé dans l’avertissement.
  • Les regroupements de certificats du Kit de développement logiciel (SDK) .NET sont obsolètes.

Pour plus d’informations, consultez Vérification du package signé NuGet.

Solution

Sous Linux, si vous faites confiance au certificat et que vous utilisez un regroupement de certificats de signature de code à l’échelle du système, prévoyez d’ajouter le certificat racine au regroupement. Cette solution peut ne pas convenir, car elle octroie une confiance à l’échelle du système.

Si les regroupements de certificats du Kit de développement logiciel (SDK) .NET sont obsolètes, effectuez une mise à jour vers une version plus récente du Kit de développement logiciel (SDK) .NET.

Si toute autre méthode échoue, refusez la vérification du package signé en définissant la variable d’environnement DOTNET_NUGET_SIGNATURE_VERIFICATION sur false et ouvrez un problème avec l’équipe NuGet pour suggérer comment améliorer la vérification de package signé sur votre plateforme.

Pour plus d’informations, consultez Vérification du package signé NuGet.