Condividi tramite


Errore NuGet NU1302

Scenario 1

Si esegue l'operazione 'restore' con un'origine 'HTTP': myHttpSource. NuGet richiede origini HTTPS. Per usare un'origine HTTP, è necessario impostare in modo esplicito "allowInsecureConnections" su true nel file NuGet.Config. Per altre informazioni, vedere https://aka.ms/nuget-https-everywhere.

Issue

myHttpSource è un'origine HTTP non sicura. È consigliabile usare invece un'origine HTTPS.

Solution

Opzione 1: Aggiornare l'origine per l'uso di HTTPS

Se possibile, aggiornare l'origine del pacchetto per usare https:// anziché http://:

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

Opzione 2: Consenti connessioni non sicure (se necessario)

Se l'origine deve rimanere HTTP, consentire in modo esplicito le connessioni non sicure aggiungendo il flag AllowInsecureConnections nel NuGet.Config:

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

Opzione 3: Consultare il livello di analisi dell'SDK

La proprietà SdkAnalysisLevel nel progetto può fungere da soluzione alternativa temporanea per la gestione delle origini HTTP. Se è necessario tempo aggiuntivo per risolvere l'errore HTTP, è possibile ridurre il SdkAnalysisLevel per eliminare temporaneamente gli errori. Ecco come funziona:

  • Per il valore del livello di analisi dell'SDK inferiore alla 9.0.100, l'uso di origini HTTP attiva un avviso (NU1803).
  • A partire da SDK Analysis Level 9.0.100 o versione successiva, le origini HTTP generano un errore (NU1302) a meno che AllowInsecureConnections non sia abilitato in modo esplicito.

Warning

La modifica di SdkAnalysisLevel ha altri effetti collaterali. Fare riferimento a SdkAnalysisLevel per un riepilogo dell'ambito completo delle funzionalità di .NET SDK interessate.

Scenario 2

Si usa un'origine NuGet 'https://contoso/v3/index.json' che contiene un endpoint di risorsa dell'indice del servizio 'HTTP': 'http://contoso/v3-flatcontainer/contoso/index.json'. Questo non è sicuro e non è consigliato. Per consentire le risorse HTTP, è necessario impostare in modo esplicito "allowInsecureConnections" su true nel file NuGet.Config. Per altre informazioni, vedere https://aka.ms/nuget-https-everywhere.

Issue

Un'origine del pacchetto configurata usa HTTPS, ma una delle relative risorse (indicate nel messaggio di errore) usa HTTP.

NuGet richiede che tutte le origini e le relative risorse usino HTTPS. Se si vuole continuare a usare questa origine nonostante la relativa risorsa HTTP, è necessario impostare il allowInsecureConnections flag su true nel file NuGet.config.

Per altre informazioni sulle origini dei pacchetti e sugli endpoint delle risorse, vedere l'API del server NuGet.

Opzione 1: Aggiornare l'origine per l'uso di HTTPS

Quando possibile, passare a un'origine del pacchetto che fornisce solo risorse HTTPS. Questa è l'opzione consigliata e più sicura.

Opzione 2: Consenti connessioni non sicure (se necessario)

Se è necessario usare l'origine, consentire in modo esplicito le connessioni non sicure aggiungendo il allowInsecureConnections flag in NuGet.Config:

Per informazioni sulla gestione dell'impostazione in Visual Studio, vedere Opzioni NuGet in Visual Studio

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