Asp.net mvc 4 寻找FIPS兼容错误的解决方法

Asp.net mvc 4 寻找FIPS兼容错误的解决方法,asp.net-mvc-4,windows-server-2016,fips,Asp.net Mvc 4,Windows Server 2016,Fips,目前我所在的团队正在进行两个环境的服务器迁移(都有一个DB和Web服务器)。我们正在从Windows Server 2008R2迁移到Windows Server 2016。这些都是全新的例子 我们完成了一个环境,并开始对托管在两台服务器上的站点进行测试(一个是测试环境,一个是生产环境)。除了测试环境中的一个例外,所有功能都按预期运行 我们托管的站点是一个自定义的.Net应用程序,使用MVC4和C#构建。它还有一个到IBMCognos应用程序的链接,用于报告目的 在测试中,我对.Net应用程序的

目前我所在的团队正在进行两个环境的服务器迁移(都有一个DB和Web服务器)。我们正在从Windows Server 2008R2迁移到Windows Server 2016。这些都是全新的例子

我们完成了一个环境,并开始对托管在两台服务器上的站点进行测试(一个是测试环境,一个是生产环境)。除了测试环境中的一个例外,所有功能都按预期运行

我们托管的站点是一个自定义的.Net应用程序,使用MVC4和C#构建。它还有一个到IBMCognos应用程序的链接,用于报告目的

在测试中,我对.Net应用程序的一个方面有点担心。此应用程序是站点的较旧部分,它根据Access DB中的数据生成PDF文件

应用程序最终抛出以下错误:“错误:此实现不是Windows平台FIPS验证的加密算法的一部分。”。应用程序引发错误时,没有记录其他详细信息

我以前在本地开发环境中见过这个错误。我当时是如何处理它的,将Windows注册表项更改为以下内容:

<system.web>
   <machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>
   ...
</system.web>
<configuration>
    <runtime>
        <enforceFIPSPolicy enabled = "false" />
    </runtime> 
</configuration>
HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy Enabled=0

然而,在我们的测试环境以及生产环境中,这是不可能的。我们需要保持Enabled=1

我们的2008R2服务器对此没有问题,但2016服务器不喜欢它。现在,我已经在web.config中添加了一个条目来允许它,但没有效果。它是以下各项的输入:

<system.web>
   <machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>
   ...
</system.web>
<configuration>
    <runtime>
        <enforceFIPSPolicy enabled = "false" />
    </runtime> 
</configuration>

...
我还使用以下内容修改了MSBuild.exe.config文件:

<system.web>
   <machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>
   ...
</system.web>
<configuration>
    <runtime>
        <enforceFIPSPolicy enabled = "false" />
    </runtime> 
</configuration>


这两个变化最终都没有改变。在这一点上,我画了一个空白。有没有办法禁用应用程序的FIPS?

我终于找到了解决方案。引发错误的代码围绕着iTextSharp的使用展开。我们的版本比较旧,并且因为抛出我上面提到的错误而臭名昭著,因为它不符合FIPS

快速简便的解决方案很简单:将iTextSharp的版本升级到下一个符合FIPS的版本


虽然这是可行的,但我们将重写使用此代码的模块,在那里我们将完全替换iTextSharp(目前已停止)。

我终于找到了解决方案。引发错误的代码围绕着iTextSharp的使用展开。我们的版本比较旧,并且因为抛出我上面提到的错误而臭名昭著,因为它不符合FIPS

快速简便的解决方案很简单:将iTextSharp的版本升级到下一个符合FIPS的版本

虽然这是可行的,但我们将重写使用此代码的模块,我们将完全替换iTextSharp(目前已停止)