Aggiunta di machineKey a web.config nei siti Web-farm

Noi (il nostro partner IT in realtà) abbiamo recentemente modificato alcuni DNS per un sito Web di cui disponiamo, in modo che i due server di produzione abbiano il DNS round-robin che passa da uno all’altro. Prima di questo passaggio non avevamo davvero problemi con i file WebResource.axd . Dall’interruttore, quando raggiungiamo l’URL pubblico in tempo reale, riceviamo un errore:

CryptographicException

Il riempimento non è valido e non può essere rimosso.

Quando colpiamo gli stessi server specifici, si caricano bene. Ho analizzato il problema e sembra che dal momento che condividono le risorse tra due server, è necessario disporre di un machineKey coerente nel web.config per ciascun server in modo che possano crittografare e decifrare in modo coerente tra i due. Le mie domande sono:

  1. Posso generare un machineKey tramite uno strumento sul server o devo scrivere codice per farlo?
  2. Devo solo aggiungere la machineKey al web.config su ciascun server o pensi che dovrò fare qualcos’altro per far lavorare insieme i due server? (Entrambi web.config al momento non hanno un machineKey )

Questo dovrebbe rispondere:

Procedura: configurare MachineKey in ASP.NET 2.0 – Considerazioni sulla distribuzione di Web Farm

Considerazioni sulla distribuzione di Web Farm

Se si distribuisce l’applicazione in una Web farm, è necessario assicurarsi che i file di configurazione su ciascun server condividano lo stesso valore per validationKey e decryptionKey, che vengono utilizzati rispettivamente per l’hashing e la decrittografia. Questo è necessario perché non puoi garantire quale server gestirà le richieste successive.

Con valori chiave generati manualmente, le impostazioni dovrebbero essere simili all’esempio seguente.

  

Se si desidera isolare l’applicazione da altre applicazioni sullo stesso server, inserirla nel file Web.config per ogni applicazione su ciascun server della farm. Assicurarsi di utilizzare valori chiave separati per ciascuna applicazione, ma duplicare le chiavi di ciascuna applicazione su tutti i server della farm.

In breve, per impostare la chiave della macchina, fare riferimento al seguente link: Impostazione di una chiave della macchina – Documentazione del frutteto .

Impostazione della chiave della macchina tramite Gestione IIS

Se si ha accesso alla console di gestione IIS per il server su cui è installato Orchard, è il modo più semplice per impostare una chiave macchina.

Avviare la console di gestione e quindi selezionare il sito Web. Apri la configurazione della chiave della macchina: Il pannello di configurazione del sito Web IIS

Il pannello di controllo della chiave della macchina ha le seguenti impostazioni:

Il pannello di configurazione della chiave della macchina

Deseleziona “Genera automaticamente al runtime” sia per la chiave di convalida che per la chiave di decrittografia.

Fai clic su “Genera chiavi” in “Azioni” sul lato destro del pannello.

Fai clic su “Applica”.

e aggiungi la seguente riga al file web.config in tutti i webservers sotto il tag system.web se non esiste.

  

Assicurati di disporre di un backup permanente delle chiavi della macchina e del file web.config

Se si utilizza IIS 7.5 o versioni successive, è ansible generare la chiave della macchina da IIS e salvarla direttamente sul proprio web.config, all’interno della Web farm è sufficiente copiare il nuovo web.config su ciascun server.

  1. Aprire il gestore IIS.
  2. Se è necessario generare e salvare MachineKey per tutte le applicazioni, selezionare il nome del server nel riquadro di sinistra, in tal caso verrà modificato il file web.config di root (inserito nella cartella .NET Framework). Se si intende creare MachineKey per un sito Web / un’applicazione specifica, selezionare il sito Web / l’applicazione dal riquadro di sinistra. In questo caso modificherete il file web.config dell’applicazione.
  3. Fare doppio clic sull’icona della chiave della macchina nelle impostazioni di ASP.NET nel riquadro centrale:
  4. La sezione MachineKey verrà letta dal tuo file di configurazione e mostrata nell’interfaccia utente. Se non hai configurato un MachineKey specifico e questo viene generato automaticamente, vedrai le seguenti opzioni:
  5. Ora è ansible fare clic su Genera chiavi nel riquadro di destra per generare MachineKeys casuali. Quando fai clic su Applica, tutte le impostazioni verranno salvate nel file web.config .

I dettagli completi possono essere visti @ Il modo più semplice per generare MachineKey – Suggerimenti e trucchi: sviluppo di ASP.NET, IIS e .NET …

Assicurati di apprendere dalla vulnerabilità di padding oracle asp.net appena avvenuta (hai applicato la patch, giusto? …) e utilizza sezioni protette per crittografare la chiave della macchina e qualsiasi altra configurazione sensibile.

Un’opzione alternativa è quella di impostarlo a livello macchina web.config, quindi non è nemmeno nella cartella del sito web.

Per generarlo fallo come l’articolo collegato nella risposta di David.