【问题标题】:Running a .NET Core app on IIS 8.5 with FIPS enabled cause 500 error在启用 FIPS 的 IIS 8.5 上运行 .NET Core 应用程序会导致 500 错误
【发布时间】:2016-04-20 09:17:08
【问题描述】:

我有一个使用 Windows 身份验证的网络核心 Web 应用程序,它在 IIS 8.5 下的 Windows Server 2012 R2 机器上运行。当试图到达它时,我得到:

InvalidOperationException:此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。 System.Security.Cryptography.SHA256Managed..ctor()

给定 app.UseBrowserLink(); & app.UseDeveloperExceptionPage();在 Startup.cs 中使用,否则我只会收到 500 内部服务器错误,显示空白屏幕。

如果我禁用 FIPS(控制面板 -> 管理工具 -> 本地安全策略 -> 本地策略 -> 安全选项 -> “系统加密:使用符合 FIPS 的算法进行加密、散列和签名”)我可以访问站点和 Windows 身份验证工作正常。

所以我的问题是为什么在 IIS 8.5 上托管网络核心应用程序时使用 FIPS 会导致此错误?目前我没有使用 FIPS 的要求,但将来可能会改变。

【问题讨论】:

  • 我也尝试将应用程序配置为使用匿名身份验证,但如果启用 FIPS,错误仍然存​​在
  • 你能在github上发布一个repo,你的完整代码和project.json吗?
  • 你运行的是net451还是dnxcore50? (dnvm list 输出应该告诉你是哪一个)

标签: asp.net-core asp.net-core-mvc .net-core


【解决方案1】:

Repro 应用是一个 ASP.NET 5 RC1 应用,它使用 dnx 和 dnu。 Dnu restore 使用来自 NuGet2 的代码,该代码使用 SHA256Managed 类触发 FIPS 下的 IOE。

ASP.NET Core RC2 使用 nuget V3,它不应该有这个问题,所以当你将你的应用程序移植到 RC2 时,从 FIPS 的角度来看你应该很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多