转  bisheng.hu
 
前不久,Windows 7终于RC了。昨天也是近一个多月以来第一个有空的周末,也就抽空把自己的PC升到Win7了。一切都好,但就一个问题,支付宝的证书导入不了。我的是x64的,网上好多都是x86的解决办法。好嘛,就这个问题,搞了一晚上,到了凌晨1、2点,实在受不了,睡觉了。今天继续,就在刚才,终于弄好了,当然也免不了网上一顿搜索。在此把一点心得记录于此。
 
    如果需要正常使用支付宝,包括支付、查询和收款,就需要用到数字证书。说实话支付宝的安全性我还是比较满意的,甚至有时有点过。大致算下来,要正常使用,需要通过三个阶段:安装支付宝安全控件,用于登陆支付宝时输入密码;导入先前备份的数字证书;证明用户身份,其实也就是一个激活该证书的过程。在这里,第一和第三个阶段都会碰到问题。下面依次来看看如何解决。
 
    首先是无法登陆,也就是无法输入密码。这主要是因为系统安全设置屏蔽了支付宝安全空间的弹出和安装,解决办法有两种,第一种如下:
    1、先设置 IE8 浏览器。在 Tools - Internet Options - Advanced 里面,取消
enable memory protection to help mitigate online attacks 前面的勾
    2、Tools - Internet Options - Security 里面,去掉 enable protected mod 前面的勾。
    3、帐户控制里面,设置提示等级为最低,控制面板里面的 user accounts, turn user account control on or off ,进去后设置 never notify。 
    另外,还有一个根本的办法,就是直接通过命令行关掉DEP数据保护功能。具体命令如下:
    1、bcdedit.exe /set {current} nx Alwaysoff    ——关闭DEP
    2、bcdedit.exe /set {current} nx OptIn        ——开启DEP
 
    登陆问题解决以后,就是证书导入的问题了。在导入证书的第一步,我倒是没有碰到什么问题,但导入以后,在填入安全问题和“上次证书使用记录”的时候依次报出两个错误,错误代码分别是:“800A138F”;“80070057”。下面具体来看看:

    800A138F的错误主要是因为IE8禁用 Microsoft Certificate Enrollment CAB 所引起的,所以通过修改注册表项取消禁用就可以了。附件中的注册表脚本一共四个,分别是x86和x64的禁用和开启。如果大家通过编辑打开这个脚本,其实可以看到,所修改的注册表项其实是同一个,只是x86和x64的路径不一样而已,这点需要注意。

    80070057错误是由于 xenroll.dll 控件没有注册引起的。这个很简单,注册一下就可以了,附件里我放了一个,x64肯定是可以的,但不确保x86可用。特别需要注意的是路径。x86的路径是C:\Windows\system32;x64的路径是C:\windows\SysWOW64\。这里我建议最好用管理员身份运行CMD。
 
    理论上解决Win7上支付宝证书的问题的关键解决办法就是以上这些,但大家还需要注意一些其他的,也是比较普遍的安全相关的配置情况。比如受信任站点,IE安全设置,管理员身份运行等等。。另外,为了确保所有配置都生效,我是全程关掉IE,在以上配置完成以后,重启计算机,再登陆支付宝进行证书恢复的。

    大家试试看吧,附件中的解压缩密码为“bisheng.blog.51cto.com”,如果有问题,可以跟帖回复消息给我。最后,把支付宝官方BLOG的一篇文章分享给大家。
本文出自 “ Bisheng.Hu” 博客,请务必保留此出处 http://bisheng.blog.51cto.com/409831/158617