Partager via


Https NuGet partout

NuGet nécessite que toutes les sources de package utilisent HTTPS au lieu de HTTP. Cette application protège la chaîne d’approvisionnement logicielle en empêchant la falsification et l’interception pendant la restauration des packages et les opérations associées. NuGet applique cette exigence en produisant une erreur et en arrêtant l’opération lorsqu’une source HTTP est utilisée.

Présentation de l’erreur HTTP

Cette erreur se produit quand une ou plusieurs sources de package dans votre configuration utilisent une URL HTTP au lieu de HTTPS.

Dans les versions antérieures de NuGet, ce scénario a généré un avertissement (NU1803). À compter de NuGet 6.12 et versions ultérieures, elle génère désormais une erreur , sauf si l’utilisation de sources HTTP est explicitement autorisée.

Avant d’autoriser les connexions HTTP, vérifiez si votre source de package prend en charge HTTPS. Si c’est le cas, mettez à jour l’URL du flux pour utiliser le protocole sécurisé :

<add key="MyFeed" value="https://contoso/packages/v3/index.json" />

Le passage au protocole HTTPS garantit le chiffrement de bout en bout et est l’approche recommandée et plus sécurisée.

Autorisation des flux HTTP non sécurisés (Opt-Out)

Si HTTPS n’est pas disponible et que vous utilisez dans un environnement approuvé ou isolé, vous pouvez autoriser explicitement les sources HTTP.

Option 1 : Définir allowInsecureConnections dans votre NuGet.Config

  • Utiliser Visual Studio

    Activez ou désactivez l’autorisation des connexions HTTP non sécurisées avec les paramètres sources de package sous le > des options Visual Studio.

  • Modifier NuGet.Config manuellement

    Ajoutez l’attribut allowInsecureConnections="true" à la source affectée :

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <add key="MyHttpFeed" value="http://contoso/packages/v3/index.json" allowInsecureConnections="true" />
      </packageSources>
    </configuration>
    

Option 2 : Utiliser le paramètre Command-Line

Pour les commandes qui le prennent en charge, incluez l’indicateur suivant pour autoriser temporairement les connexions HTTP :

Pour les commandes dotnet :

--allow-insecure-connections

Pour NuGet.exe commandes, utilisez :

-AllowInsecureConnections

Commandes qui prennent en charge les options de désactivation

Tool Commands Prise en charge de l’autorisation d’une connexion non sécurisée
nuget.exe push NuGet 7.0
dotnet CLI dotnet nuget push .NET 10.0.1xx et versions ultérieures
dotnet CLI dotnet nuget add source .NET 9.0.1xx et versions ultérieures

Déploiement du renforcement HTTPS dans les outils

L’application HTTPS de NuGet a été introduite progressivement à travers les versions. Le tableau suivant récapitule la progression des avertissements (NU1803) aux erreurs (NU1302).

Versions affectées Comportement
NuGet.exe 6.3+, Visual Studio 17.3+, .NET 6.0.100+ ⚠️ Avertissement (NU1803) : sources HTTP autorisées mais déconseillées
NuGet.exe 6.12+, Visual Studio 17.12+, .NET 9.0.100+ Erreur (NU1302) : sources HTTP bloquées, sauf autorisation explicite

Voir aussi