6

Şifreleme ile ilgili sorun yaşıyorum. RSA klasörlerine tüm kullanıcılara tam izin verdim. Ben Web.config Şifreleme Hatası

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

Hiçbir şey benim için çalışıyor

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

Takip

yaptım Sonra
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! 

yaptı.

Herkes yardımcı olabilir mi?

teşekkürler konum yanlıştır Bu satırda

cevap

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

. -pd geçiş konumunu kullandığınızda, IIS'nin uygulama yollarını temel alır ve web.config şifreleme noktası olarak kabul edilir.

Yani, örneğin bir uygulama "Web sitesi 1" adında varsa ve başka IIS'de "Web sitesi 2" adlı ve siz bu satırı kullanmak istiyorsunuz şifrelenmesini "Web sitesi 1" de web.config istiyorum:

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

Doğrudan web uygulamasının fiziksel dizinine yönlendirebildiğim için -pef anahtarını kullanmayı daha kolay buldum. Encrypting Configuration Information Using Protected Configuration üzerinde

Takip MSDN'ın öğretici. Birden çok kez kullandım ve henüz bir sıkıntı yaratma sorunum var.

+0

Cevabınız için teşekkür ederiz. C: \> aspnet_regiis -pe "appSettings" -location "web.config" -prov "RsaProtectedConfigurationProvider" Bunu diğer birkaç makinede yaptım. İşe yarıyor. Yani sorun komut satırı değil. Sorun anahtardır. Bu özel makinede anahtarla ilgili bir sorun var. – BKarms

1

Sen ASP.NET hizmeti olarak çalışan ne olursa olsun hesabı "yönetici" değiştirmeniz gerekir. Çünkü, olasılıklar, ASP.NET'i yönetici hizmet hesabı olarak çalıştırmıyorsunuz. Eğer öyleyse, kararını tekrar gözden geçirmelisin.

Örneğin

, burada ne kullanın:

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

veya

aspnet_regiis -pa "NetFrameworkConfigurationKey" "ASPNET" 

Sonra şifreleme için, ben kullanın:

aspnet_regiis -pef "connectionStrings" 

veya

aspnet_regiis -pef "appSettings" 
+0

Cevabınız için teşekkür ederiz. aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT Authority \ Network Service" veya aspnet_regiis -pa "NetFrameworkConfigurationKey" "ASPNET" Hangi hesabı verdiğim önemli değil. Hata mesajını döndürür. RSA Anahtar kutusuna erişim için ACL ekleniyor ... RSA anahtar kutusu bulunamadı. Başarısız oldu! – BKarms

9

Ben bu başarısızlık ile aynı sorunu başlamıştı:

aspnet_regiis -pa "NetFrameworkConfigurationKey" "{Alan} {Adı}"

Yukarıdaki satır dönüyordu "RSA anahtarı konteyner değildi buldum."

Ben yönetici olarak Komut İstemi çalıştırmak zorunda Bu sorunu gidermek için (Başlat> Aksesuarlar açmak> ​​sonra ... Komut İstemi sağ tıklayın ve yönetici olarak çalıştır seçin). Hesabım yönetici hesabı olsa da bunu yapmak zorundaydım.

+1

Komut istemini yönetici olarak çalıştırmak bu sorunu benim için giderdi. – mkchandler

0

Yukarıdaki komutlarla giderilmeden önce, sertifikaların yükleneceği klasörü bulup sahip olma/izin verme izni vermem gerekiyordu. Hatalar, anahtar kabının bulunamadığını söyledi, fakat gerçekten de sadece sertifikanın izinleri yoktu. Benim durumumda, bir başkasından bir geliştirme makinesi miras aldım ve gerekli komutları çalıştırabilmek için dosyalara kendim izin vermem gerekiyordu.

Cert klasör konumları, ayrıntılı adımlar vb. Ile daha ayrıntılı bir yanıt vermeyi umuyordum ama zamanım olmadı ve sadece senaryonumda ne yapmam gerektiğini belirtmek istedim.