Nous (notre partenaire informatique vraiment) avons récemment changé certains DNS pour un site Web que nous avons, afin que les deux serveurs de production aient un DNS alternatif entre eux. Avant ce changement, nous n'avions pas vraiment de problèmes avec WebResource.axd
des dossiers. Depuis le changement, lorsque nous atteignons l'URL publique en direct, nous obtenons une erreur:
CryptographicException
Le rembourrage n'est pas valide et ne peut pas être supprimé.
Lorsque nous atteignons les serveurs spécifiques eux-mêmes, ils se chargent correctement. J'ai fait des recherches sur le problème et il semble qu'ils partagent des actifs entre deux serveurs, nous devons avoir un machineKey
cohérent dans le web.config
pour chaque serveur afin qu'ils puissent chiffrer et déchiffrer de manière cohérente entre les deux. Mes questions sont:
machineKey
via un outil sur le serveur, ou dois-je écrire du code pour ce faire?machineKey
au web.config
sur chaque serveur ou pensez-vous que je devrai faire autre chose pour que les deux serveurs fonctionnent ensemble? (Tous les deux web.config
n'ont actuellement pas de machineKey
)Cela devrait répondre:
Considérations relatives au déploiement de la batterie de serveurs Web
Si vous déployez votre application dans une batterie de serveurs Web, vous devez vous assurer que les fichiers de configuration sur chaque serveur partagent la même valeur pour validationKey et decryptionKey, qui sont utilisées respectivement pour le hachage et le déchiffrement. Ceci est nécessaire car vous ne pouvez pas garantir quel serveur traitera les demandes successives.
Avec des valeurs de clé générées manuellement, les paramètres doivent être similaires à l'exemple suivant.
<machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7 AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B" decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F" validation="SHA1" decryption="AES" />
Si vous souhaitez isoler votre application des autres applications sur le même serveur, placez le dans le fichier Web.config pour chaque application sur chaque serveur de la batterie de serveurs. Assurez-vous d'utiliser des valeurs de clé distinctes pour chaque application, mais dupliquez les clés de chaque application sur tous les serveurs de la batterie.
En bref, pour configurer la clé machine, reportez-vous au lien suivant: Configuration d'une clé machine - Documentation Orchard .
Configuration de la clé machine à l'aide de IIS Manager
Si vous avez accès à la console de gestion IIS pour le serveur sur lequel Orchard est installé, c'est le moyen le plus simple de configurer une clé d'ordinateur.
Démarrez la console de gestion, puis sélectionnez le site Web. Ouvrez la configuration de la clé machine:
Le panneau de commande de la clé machine a les paramètres suivants:
Décochez "Générer automatiquement lors de l'exécution" pour la clé de validation et la clé de déchiffrement.
Cliquez sur "Générer des clés" sous "Actions" sur le côté droit du panneau.
Cliquez sur "Appliquer".
et ajoutez la ligne suivante au web.config
fichier dans tous les webservers
sous system.web
tag s'il n'existe pas.
<machineKey
validationKey="21F0SAMPLEKEY9C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7
AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
decryptionKey="ABAASAMPLEKEY56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
validation="SHA1"
decryption="AES"
/>
Veuillez vous assurer que vous disposez d'une sauvegarde permanente des clés de l'ordinateur et web.config
fichier
Si vous utilisez IIS 7.5 ou version ultérieure, vous pouvez générer la clé machine à partir de IIS et l'enregistrer directement dans votre web.config, dans la batterie de serveurs Web, vous copiez simplement le nouveau web.config sur chaque serveur.
web.config
fichier de votre candidature.web.config
fichier.Tous les détails peuvent être consultés @ moyen le plus simple de générer MachineKey - Trucs et astuces: ASP.NET, IIS et développement .NET…
Assurez-vous d'apprendre de la remplissage de la vulnérabilité Oracle asp.net qui vient de se produire (vous avez appliqué le correctif, non? ...) et utilisez sections protégées pour crypter la clé machine et toute autre configuration sensible.
Une autre option consiste à le définir dans le fichier Web.config au niveau de la machine, donc ce n'est même pas dans le dossier du site Web.
Pour le générer, faites-le comme l'article lié dans la réponse de David.