Cómo encriptar las cadenas de conexión del archivo web.config
Daniel Lutz
empezó un tema
más de 2 años hace
Encriptar el Web.Config
El verdadero titulo de este post deberia ser encriptar una sección del web config, pero estoy seguro que lo que quieren es ocultar el es el connectionString. Vamos a utilizar el proveedor de configuración protegida RSA y la herramienta aspnet_regiis.exe para poder lograr la encriptación de secciones del Web.Config.
En el ejemplo que veremos a continuación, la encriptación se generará con la llave propia del servidor. Aunque es posible importar y exportar las claves RSA de un servidor a otro, esto nos ayudará a utilizar el mismo cifrado en varios servidores.
Para encriptar la sección connectionString del Web.Config vamos a realizar los siguientes pasos:
No olvides consultar las fuentes al final del documento, ya que incluimos videos de youtube.
1. Abrir una ventana de la línea de comandos CMD con la opción de abrir como administrador.
2. Introduciremos la llamada al programa aspnet_regiis ubicado en la ruta de la versión activa del servidor, en mi caso es la versión v4.0.30319
3. Si consultamos el archivo web.config, ya podemos ver que dicha sección se ha encriptado.
4. Podemos comprobar si funciona la desencriptación, cambiando el parámetro "-pef" por "-pdf"
5. Por último, tan sólo hay que tener presente un par de cuestiones:
El cifrado depende de la máquina donde está instalado IIS por tanto, si tenemos dos entornos NO podemos copiar el archivo web.config con secciones cifradas de un servidor a otro pues en el nuevo no se interpretaría el cifrado. Debe ejecutarse el comando individualmente en ambos servidores
Existen dos tipos de cifrado (que indicamos en el parámetro –prov) que se pueden usar: DataProtectionConfiguratioProvider y RsaProtectionConfigurationProvider. Al desencriptar no es necesario indicar el proveedor pues ya se especifica en el archivo. (Ver apartado de fuentes con el tutorial)
Daniel Lutz
Encriptar el Web.Config
El verdadero titulo de este post deberia ser encriptar una sección del web config, pero estoy seguro que lo que quieren es ocultar el es el connectionString.
Vamos a utilizar el proveedor de configuración protegida RSA y la herramienta aspnet_regiis.exe para poder lograr la encriptación de secciones del Web.Config.
En el ejemplo que veremos a continuación, la encriptación se generará con la llave propia del servidor. Aunque es posible importar y exportar las claves RSA de un servidor a otro, esto nos ayudará a utilizar el mismo cifrado en varios servidores.
Para encriptar la sección connectionString del Web.Config vamos a realizar los siguientes pasos:
No olvides consultar las fuentes al final del documento, ya que incluimos videos de youtube.
1. Abrir una ventana de la línea de comandos CMD con la opción de abrir como administrador.
2. Introduciremos la llamada al programa aspnet_regiis ubicado en la ruta de la versión activa del servidor, en mi caso es la versión v4.0.30319
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pef "connectionStrings" Carpeta_Con_Web.Config
3. Si consultamos el archivo web.config, ya podemos ver que dicha sección se ha encriptado.
4. Podemos comprobar si funciona la desencriptación, cambiando el parámetro "-pef" por "-pdf"
5. Por último, tan sólo hay que tener presente un par de cuestiones:
Fuentes:
https://www.youtube.com/watch?v=P3hMKefn5Qc
https://www.cjorellana.net/2009/10/encriptar-el-webconfig.html Para ver la encriptación RSA, útil para tener la misma llave en varios servidores.
https://albporra.wordpress.com/2011/02/09/net-encriptar-secciones-de-web-config-2/
https://docs.microsoft.com/es-es/aspnet/web-forms/overview/data-access/advanced-data-access-scenarios/protecting-connection-strings-and-other-configuration-information-cs