Partager via


Erreur NuGet NU1302

Scénario 1

Vous exécutez l’opération « restore » avec une source « HTTP » : myHttpSource. NuGet nécessite des sources HTTPS. Pour utiliser une source HTTP, vous devez définir explicitement « allowInsecureConnections » sur true dans votre fichier NuGet.Config. Pour plus d’informations, consultez https://aka.ms/nuget-https-everywhere.

Issue

myHttpSource est une source HTTP non sécurisée. Nous vous recommandons d’utiliser une source HTTPS à la place.

Solution

Option 1 : Mettre à jour la source pour utiliser HTTPS

Si possible, mettez à jour la source du package pour utiliser https:// au lieu de http://:

<configuration>
  <packageSources>
    <add key="SecureSource" value="https://example.com/nuget/" />
  </packageSources>
</configuration>

Option 2 : Autoriser les connexions non sécurisées (si nécessaire)

Si la source doit rester HTTP, autorisez explicitement les connexions non sécurisées en ajoutant l’indicateur AllowInsecureConnections dans l'NuGet.Config:

<configuration>
  <packageSources>
    <add key="InsecureSource" value="http://example.com/nuget/" allowInsecureConnections="true" />
  </packageSources>
</configuration>

Option 3 : Consulter le niveau d’analyse du Kit de développement logiciel (SDK)

La propriété SdkAnalysisLevel dans votre projet peut servir de solution de contournement temporaire pour la gestion des sources HTTP. Si vous avez besoin de temps supplémentaire pour résoudre l’erreur HTTP, vous pouvez réduire la SdkAnalysisLevel pour supprimer temporairement les erreurs. Voici comment il fonctionne :

  • Pour la valeur de niveau d’analyse du SDK inférieure à 9.0.100, l’utilisation de sources HTTP déclenche un avertissement (NU1803).
  • À compter du niveau d’analyse du SDK 9.0.100 ou version ultérieure, les sources HTTP entraînent une erreur (NU1302), sauf si AllowInsecureConnections est explicitement activé.

Warning

La modification de SdkAnalysisLevel a d’autres effets secondaires. Reportez-vous à la SdkAnalysisLevel liste d’un résumé de l’étendue complète des fonctionnalités du Kit de développement logiciel (SDK) .NET affectées.

Scénario 2

Vous utilisez une source NuGet «https://contoso/v3/index.json » qui contient un point de terminaison de ressource d’index de service « HTTP » : «http://contoso/v3-flatcontainer/contoso/index.json ». Cela n’est pas sécurisé et n’est pas recommandé. Pour autoriser les ressources HTTP, vous devez définir explicitement « allowInsecureConnections » sur true dans votre fichier NuGet.Config. Pour plus d’informations, consultez https://aka.ms/nuget-https-everywhere.

Issue

Une source de package configurée utilise HTTPS, mais l’une de ses ressources (indiquée dans le message d’erreur) utilise HTTP.

NuGet nécessite que toutes les sources et leurs ressources utilisent HTTPS. Si vous souhaitez continuer à utiliser cette source malgré sa ressource HTTP, vous devez définir l’indicateur allowInsecureConnections sur true dans votre fichier NuGet.config.

Pour en savoir plus sur les sources de package et les points de terminaison de ressources, consultez l’API Du serveur NuGet.

Option 1 : Mettre à jour la source pour utiliser HTTPS

Dans la mesure du possible, basculez vers une source de package qui fournit uniquement des ressources HTTPS. Il s’agit de l’option recommandée et la plus sécurisée.

Option 2 : Autoriser les connexions non sécurisées (si nécessaire)

Si vous devez utiliser la source, autorisez explicitement les connexions non sécurisées en ajoutant l’indicateur allowInsecureConnections dans :NuGet.Config

Pour plus d’informations sur la gestion du paramètre dans Visual Studio, consultez Options NuGet dans Visual Studio

<configuration>
  <packageSources>
    <add key="InsecureSource" value="https://contoso/v3/index.json" allowInsecureConnections="true" />
  </packageSources>
</configuration>