asp.net web-config load-balancing web-farm machinekey

asp.net - Agregar machineKey a web.config en sitios de la granja web



web-config load-balancing (3)

Asegúrese de aprender de la vulnerabilidad de padding oracle asp.net que acaba de suceder (aplicó el parche, ¿verdad? ...) y use secciones protegidas para encriptar la clave del equipo y cualquier otra configuración sensible.

Una opción alternativa es establecerlo en el nivel de máquina web.config, por lo que ni siquiera está en la carpeta del sitio web.

Para generarlo, hazlo igual que el artículo vinculado en la respuesta de David.

Nosotros (nuestro socio de TI realmente) recientemente cambiamos algunos DNS para un sitio web de cría que tenemos, de modo que los dos servidores de producción tienen conmutación DNS round-robin entre ellos. Antes de este cambio, realmente no teníamos problemas con los archivos WebResource.axd . Desde el cambio, cuando pulsamos la URL pública en vivo, recibimos un error:

CryptographicException

El relleno no es válido y no se puede eliminar.

Cuando llegamos a los servidores específicos, cargan bien. Investigué el problema y parece que, dado que comparten activos entre dos servidores, necesitamos tener una machineKey consistente en el web.config para cada servidor, de modo que puedan encriptar y descifrar de manera consistente entre los dos. Mis preguntas son:

  1. ¿Puedo generar una machineKey través de una herramienta en el servidor, o necesito escribir un código para hacer esto?
  2. ¿Solo necesito agregar machineKey a web.config en cada servidor o cree que tendré que hacer algo más para que los dos servidores funcionen juntos? (Los dos web.config actualmente no tienen una machineKey )

Esto debería responder:

Cómo: Configurar MachineKey en ASP.NET 2.0 - Consideraciones sobre la implementación de Web Farm

Consideraciones sobre la implementación de Web Farm

Si implementa su aplicación en una granja de servidores web, debe asegurarse de que los archivos de configuración en cada servidor comparten el mismo valor para validationKey y decryptionKey, que se usan para el hash y el descifrado, respectivamente. Esto es necesario porque no puede garantizar qué servidor manejará solicitudes sucesivas.

Con valores clave generados manualmente, la configuración debe ser similar al siguiente ejemplo.

<machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7 AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B" decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F" validation="SHA1" decryption="AES" />

Si desea aislar su aplicación de otras aplicaciones en el mismo servidor, colóquela en el archivo Web.config para cada aplicación en cada servidor de la granja de servidores. Asegúrese de usar valores de clave separados para cada aplicación, pero duplique las claves de cada aplicación en todos los servidores de la granja de servidores.

En resumen, para configurar la clave de la máquina, consulte el siguiente enlace: Configuración de una clave de máquina - Documentación de Orchard .

Configuración de la clave de la máquina mediante el Administrador de IIS

Si tiene acceso a la consola de administración de IIS para el servidor donde está instalado Orchard, es la forma más fácil de configurar una clave de máquina.

Inicie la consola de administración y luego seleccione el sitio web. Abra la configuración de la clave de la máquina:

El panel de control de la llave de la máquina tiene la siguiente configuración:

Desmarque "Generar automáticamente en tiempo de ejecución" para la clave de validación y la clave de descifrado.

Haga clic en "Generar claves" en "Acciones" en el lado derecho del panel.

Haga clic en "Aplicar".

y agregue la siguiente línea al archivo web.config en todos los webservers bajo la etiqueta system.web si no existe.

<machineKey validationKey="21F0SAMPLEKEY9C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7 AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B" decryptionKey="ABAASAMPLEKEY56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F" validation="SHA1" decryption="AES" />

Asegúrese de tener una copia de seguridad permanente de las claves de la máquina y del archivo web.config


Si está utilizando IIS 7.5 o posterior, puede generar la clave del equipo desde IIS y guardarla directamente en su web.config, dentro de la granja de servidores web simplemente copie el nuevo web.config a cada servidor.

  1. Abre el administrador de IIS.
  2. Si necesita generar y guardar MachineKey para todas sus aplicaciones, seleccione el nombre del servidor en el panel izquierdo, en ese caso estará modificando el archivo raíz web.config (que se encuentra en la carpeta .NET framework). Si su intención es crear MachineKey para un sitio web / aplicación específico, seleccione el sitio web / aplicación en el panel izquierdo. En ese caso, modificará el archivo web.config de su aplicación.
  3. Haga doble clic en el icono Clave del equipo en la configuración de ASP.NET en el panel central:
  4. La sección MachineKey se leerá de su archivo de configuración y se mostrará en la interfaz de usuario. Si no configuró una MachineKey específica y se genera automáticamente, verá las siguientes opciones:
  5. Ahora puede hacer clic en Generar claves en el panel derecho para generar MachineKeys aleatorias. Al hacer clic en Aplicar, todas las configuraciones se guardarán en el archivo web.config .

Los detalles completos se pueden ver @ La forma más sencilla de generar MachineKey: consejos y trucos: desarrollo de ASP.NET, IIS y .NET ...