Windows Server2008 R2服务器IIS7站点突然爆出此实现不是 Windows 平台 FIPS 验证的加密算法的一部分的解决方法

有一台Windows Server 2008 R2服务器由于内存问题导致服务器蓝屏并不断重启,之后引起了一系列问题,特别是爆出了此实现不是Windows平台FIPS验证加密算法的一部分,前所未闻的问题犹如泰山压顶,迅速通过度娘,Google查找问题根源。查了数十个小时,可以分为两种,一种是组策略,一种是修改注册表。
1,开始,运行,输入 gpedit.msc打开组策略,左侧列表中找到 计算机配置 – Windows设置 – 安全设置 – 本地策略 – 安全选项,并在右侧找到“系统加密:将FIPS兼容算法用于加密、哈希和签名” 双击上述策略,在弹出的选项中,将状态改为已禁用。【系统本身已是禁用状态】
2更改注册表,开始,运行,输入regedit打开注册表,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy,将Enabled的值改为0  【值本身就为0】2   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet001\Control\Lsa\FipsAlgorithmPolicy,将Enabled的值改为0  【值本身就为0】

当然还有一种是说在web.config文件里增加一行<runtime><enforceFIPSPolicy enabled=”false” /> </runtime>试了试还是不行。
搜便所有互联网,基本上都是上面的解决访问,时间一分一秒的过去了,还是一筹莫展,不能这样就重做系统吧!那么多站点部署也不是那么容易的。既然是程序报错,修改程序总可以吧!
1 System.InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms

首先碰到一个难题,就是md5加密这块,md5不可用,所有账号都是通过md5加密的,不可能换新的加密方式,既然系统的md5加密不可用,只好去网上搜搜C#写的md5加密类,还好找到了一个互联网大牛写的md5加密类,试了试还行,对字符等加密和原有的加密出来的一样。唯一的缺点是不支持中文,还好系统密码都限制了不能使用中文,满足条件,就将密码这块统一更换成了改md5加密方式。
2,针对缓存碰到的一个问题。由于硬盘比较廉价,站点使用了大量的文件缓存。在处理缓存子文件夹和缓存文件名的时候使用了md5对字符串加密,由于担心字符串含有中文,就无法使用上面的md5加密类,搜索之后发现了sha1加密方式,虽然比md5慢一点,但是完全符合唯一性。接下来就将所有与密码无关的md5加密全部换成了下方的sha1加密方式。

 public static string SHA1(string input)
        {
            using (System.Security.Cryptography.SHA1CryptoServiceProvider provider =
              new System.Security.Cryptography.SHA1CryptoServiceProvider()){
                      return BitConverter.ToString(
                               provider.ComputeHash(Encoding.UTF8.GetBytes(input))
                                                 ).Replace("-", "").ToLower();
            }
       }

3此实现不是 Windows 平台 FIPS 验证的加密算法的一部分

由于Net 2.0的站点都报这个错误,还以为也是与安全性有关,找了半天,最后新建了一个以aspx结尾的空文件,居然也报错,无计可施的时候,将该站点进程池切换到4.0下面,居然运行正常了,一直不清楚什么原理。不过切换到4.0之后,表单提交页面对ValidateRequest=”false”这个不起作用,如果表单包含html代码一样会报错,需要在web.config 增加<httpRuntime  requestValidationMode=”2.0″ />
至此站点基本恢复正常。

分享到:
此条目发表在 Net, 服务器 分类目录,贴了 , 标签。将固定链接加入收藏夹。

评论功能已关闭。