6

Avendo problemi con la crittografia. Ho dato le autorizzazioni complete a tutti gli utenti alle cartelle RSA. Ho fattoErrore di crittografia Web.config

C:\>aspnet_regiis -pe "appSettings" -location "web.config" -prov "RsaProtectedCo 
nfigurationProvider" 
Encrypting configuration section... 
An error occurred executing the configuration section handler for appSettings. 

Failed to encrypt the section 'appSettings' using provider 'RsaProtectedConfigur 
ationProvider'. Error message from the provider: Object already exists. 

Failed! 

Poi ho fatto

C:\>aspnet_regiis -pa "NetFrameworkConfigurationKey" "administrator" 
Adding ACL for access to the RSA Key container... 
The RSA key container was not found. 
Failed! 

Seguito da

C:\>aspnet_regiis -pc "NetFrameworkConfigurationKey" -exp 
Creating RSA Key container... 
The RSA key container could not be opened. 
Failed! 

Nulla sta lavorando per me.

Qualcuno può aiutare?

Grazie

risposta

1
C:\>aspnet_regiis -pe "appSettings" -location "web.config" 
     -prov "RsaProtectedConfigurationProvider" 

In questa linea la posizione non è corretta. Quando si utilizza la posizione dello switch -pd in base ai percorsi dell'applicazione di IIS e web.config viene assunto come punto di crittografia.

Così, per esempio, se si dispone di un'applicazione denominata "Sito 1" e un altro chiamato "web 2" in IIS e si desidera che il web.config in "Sito 1" da cifrare si usa questa linea:

C:\>aspnet_regiis -pe "appSettings" -location "Website 1" 
     -prov "RsaProtectedConfigurationProvider" 

Personalmente, ho trovato più semplice usare lo switch -pef poiché posso puntare direttamente alla directory fisica dell'app Web.

Segui il tutorial di MSDN su Encrypting Configuration Information Using Protected Configuration. L'ho usato più volte e devo ancora avere un problema con l'encirption.

+0

Grazie per la risposta. C: \> aspnet_regiis -pe "appSettings" -location "web.config" -prov "RsaProtectedConfigurationProvider" L'ho fatto su molte altre macchine. Funziona. Quindi il problema non è la riga di comando. Il problema è la chiave. C'è qualcosa di sbagliato in questa macchina specifica per quanto riguarda la chiave. – BKarms

1

È necessario modificare "amministratore" in qualunque account sia in esecuzione il servizio ASP.NET. Perché, probabilmente, non stai eseguendo ASP.NET come account di servizio dell'amministratore. Se lo sei, dovresti riconsiderare la tua decisione.

Per esempio, ecco quello che io uso:

aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT Authority\Network Service" 

o

aspnet_regiis -pa "NetFrameworkConfigurationKey" "ASPNET" 

Poi per la crittografia, io uso:

aspnet_regiis -pef "connectionStrings" 

o

aspnet_regiis -pef "appSettings" 
+0

Grazie per la risposta. aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT Authority \ Network Service" o aspnet_regiis -pa "NetFrameworkConfigurationKey" "ASPNET" Indipendentemente dall'account che fornisco. Restituisce un messaggio di errore. Aggiunta di ACL per l'accesso al contenitore di chiavi RSA ... Il contenitore di chiavi RSA non è stato trovato. Impossibile! – BKarms

9

mi è stato sempre lo stesso problema con questo difetto:

aspnet_regiis -pa "NetFrameworkConfigurationKey" "{Domain} {nome utente}"

La linea di cui sopra era di ritorno "Il contenitore di chiavi RSA non era trovato."

Per risolvere questo problema, ho dovuto eseguire il prompt dei comandi come amministratore (aprire Start> Accessori> quindi fare clic con il tasto destro del mouse su Prompt dei comandi e scegliere Esegui come amministratore ...). Dovevo farlo anche se il mio account era un account amministratore.

+1

L'esecuzione del prompt dei comandi come amministratore ha risolto il problema per me. – mkchandler

0

Ho dovuto trovare la cartella in cui sono installati i certificati e assumere la proprietà/dare le autorizzazioni prima che gli errori con i comandi precedenti andassero via. Gli errori dicevano che il contenitore delle chiavi non poteva essere trovato, ma in realtà era solo che non avevo le autorizzazioni per il certificato. Nel mio caso avevo ereditato una macchina di sviluppo da qualcun altro e avevo bisogno di darmi le autorizzazioni ai file prima che potessi eseguire i comandi necessari.

Speravo di fornire una risposta più dettagliata con le posizioni delle cartelle Cert, i passaggi dettagliati, ecc. Ma non ho avuto tempo e volevo solo prendere nota di ciò che dovevo fare nel mio scenario.