Как отключить фипы в asp .net - PullRequest
       36

Как отключить фипы в asp .net

4 голосов
/ 22 октября 2010

Я хочу отключить fips в приложении asp .net x64. В web.config я добавил

<runtime>
    <enforceFIPSPolicy enabled = "false">
</runtime>

Я установил для debug значение false.

Однако мое приложение не работает. Должен ли я объявить раздел времени выполнения в ? Если да, то правильная ли строка

<section name="runtime" type="System.Configuration.IgnoreSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowLocation="false"/>

1 Ответ

4 голосов
/ 10 августа 2016

Решение работает только для IIS> = 7,5

Не похоже, что IIS позволяет вам управлять этим параметром через web.config веб-приложения. Одним из способов решения этой проблемы является создание выделенного пула приложений (или нескольких) и настройка CLR пула приложений с отключенным принудительным применением FIPS. В IIS 7.5 введено свойство CLRConfigFile , которое можно использовать для указания файла конфигурации .NET пула приложений. Это дает нам более детальный контроль над тем, какие приложения влияют на конфигурацию - вместо подхода дробовика, где мы отключаем его в machine.config или в параметре групповой политики.

1.Создать файл конфигурации, c:\inetpub\AppPoolClrConfig\noFipsWeb.config, со следующим содержимым (местоположение и имя файла не имеют значения):

<configuration>
    <runtime>
        <enforceFIPSPolicy enabled = "false" />
    </runtime> 
</configuration>

2. Предоставьте разрешения на чтение файла идентификатору, под которым запускается пул приложений:

icacls c:\inetpub\AppPoolClrConfig\noFipsWeb.config /grant "IIS APPPOOL\YourAppPoolName":(R)

3.Настройте пул приложений для загрузки этого файла конфигурации, задав свойство CLRConfigFile пула:

CMD:

%windir%\System32\inetsrv\appcmd.exe set config  -section:system.applicationHost/applicationPools/[name='{AppPoolName}'].CLRConfigFile:"{FilePath}"  /commit:apphost
* * Образец тысяча двадцать-один:
%windir%\System32\inetsrv\appcmd.exe set config  -section:system.applicationHost/applicationPools /[name='YourAppPoolName'].CLRConfigFile:"c:\inetpub\AppPoolClrConfig\noFipsWeb.config"  /commit:apphost

Из-за ошибки в IIS 7.5 нам также необходимо очистить свойство managedRuntimeLoader, иначе CLRConfigFile будет игнорироваться:

%windir%\System32\inetsrv\appcmd.exe set config  -section:system.applicationHost/applicationPools /[name='YourAppPoolName'].managedRuntimeLoader:""  /commit:apphost

4. Перезагрузите IIS. Ваши приложения Asp.NET, которые используют пул приложений выше, теперь должны игнорировать FIPS.

Кредиты для:

Скотту Форсайту за объяснение , как настроить пул приложений для использования файла CLR, отличного от стандартного файла aspnet.config .

Хосе Рейес за документирование ошибки в IIS 7.5, которая игнорировала свойство CLRConfigFile

...