Подтвердить что ты не робот

Добавление machineKey в web.config на веб-сайтах

Мы (вне реального партнера ИТ) недавно изменили некоторые DNS для веб-сайта, который у нас есть, так что у двух производственных серверов есть циклическое переключение DNS между ними. До этого коммутатора у нас не было проблем с WebResource.axd файлами. Поскольку переключатель, когда мы нажимаем прямой URL, мы получаем ошибку:

CryptographicException

Заполнение недопустимо и не может быть удалено.

Когда мы нажимаем на определенные серверы, они загружаются штрафом. Я исследовал проблему, и, похоже, поскольку они распределяют активы между двумя серверами, для каждого сервера требуется согласованный machineKey в web.config, чтобы они могли последовательно шифровать и расшифровывать данные между ними. Мои вопросы:

  • Можно ли создать machineKey с помощью инструмента на сервере или мне нужно написать код для этого?
  • Нужно ли просто добавлять machineKey к web.config на каждом сервере, или, как вы думаете, мне нужно будет сделать что-нибудь еще, чтобы оба сервера работали вместе? (Оба web.config в настоящее время не имеют machineKey)
4b9b3361

Ответ 1

Это должно ответить:

Как настроить MachineKey в ASP.NET 2.0 - соображения по развертыванию веб-фермы

Короче говоря, для настройки машинного ключа укажите следующую ссылку: Настройка машинного ключа - Документация о садоводстве.

и добавьте следующую строку в файл web.config во всем теге webservers под тегом system.web, если он не существует.

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

Пожалуйста, убедитесь, что у вас есть постоянная резервная копия машинных клавиш и web.config file

Ответ 2

Если вы используете IIS 7.5 или более позднюю версию, вы можете сгенерировать машинный ключ из IIS и сохранить его непосредственно в web.config, в веб-ферме вы просто скопируете новый web.config на каждый сервер.

  • Откройте диспетчер IIS.
  • Если вам нужно создать и сохранить MachineKey для всех ваших приложений, выберите имя сервера в левой панели, в этом случае вы будете изменять файл root web.config(который помещается в папку платформы .NET). Если вы намерены создать MachineKey для определенного веб-сайта/приложения, выберите веб-сайт/приложение из левой панели. В этом случае вы будете изменять файл web.config вашего приложения.
  • Дважды щелкните значок Machine Key в настройках ASP.NET в средней панели:
  • Раздел MachineKey будет считан из вашего файла конфигурации и будет отображаться в пользовательском интерфейсе. Если вы не настроили конкретный MachineKey и он будет создан автоматически, вы увидите следующие параметры:
  • Теперь вы можете нажать "Создать ключи" на правой панели, чтобы генерировать случайные "MachineKeys". Когда вы нажмете "Применить", все настройки будут сохранены в файле web.config.

Подробные сведения можно увидеть @Самый простой способ создания MachineKey - Советы и рекомендации: разработка ASP.NET, IIS и .NET...

Ответ 3

Обязательно изучите простую уязвимость asac.net asp.net, которая только что произошла (вы применили патч, правильно?...) и используйте защищенные разделы для шифрования машинного ключа и любой другой конфиденциальной конфигурации.

Альтернативным вариантом является установка его на уровне машины web.config, поэтому его даже не в папке веб-сайта.

Чтобы сгенерировать его, сделайте это так же, как и связанная статья в ответе Дэвида.