Roamoner

——“林子里有两条路,我走上了人迹罕至的一条,于是看到了别人不曾看到的风景。”

原创  支付宝数字证书常见问题解决思路(一) 收藏

支付宝数字证书常见问题解决思路

 

 

 

 

1     提交申请时的错误... 1

1.1         800A138F. 1

1.1.1      浏览器安全域设置导致控件创建失败... 2

1.1.2      控件被屏蔽... 2

1.1.2.1     修改注册表... 2

1.1.2.2     浏览器设置解除屏蔽(xp... 3

1.1.2.3     浏览器设置解除屏蔽(vista、IE7... 5

1.2         800A01B6,80070057. 6

1.3         80090016. 7

1.3.1      设置文件夹选项... 7

1.3.2      RSA文件夹授权... 8

1.3.2.1    NTFS格式... 9

1.3.2.2    FAT32格式... 13

1.3.3      Certificates文件夹授权... 15

1.3.4      All Users文件夹的授权... 16

1.3.5      启动ProtectedStorage服务... 17

1.3.6      重启机器... 17

2     申请之后回写证书时错误... 17

2.1         800B0109. 17

 

 

1        提交申请时的错误

1.1    800A138F

这个错误直接是由于cenroll创建失败造成的。

什么是cenroll呢?它是一个ActiveX控件。在vista以下版本中,它的名称叫xenroll.dll,classid127698e4-e730-4e5c-a2b1-21490a70c8a1;而到了vista及以上版本,它的名称是CernEnroll.dllclassid884e2049-217d-11da-b2a4-000e7bbb2b09

       Cenroll控件复制枚举CSP,产生证书请求,回写证书。

       支付宝网站能够自动识别操作系统并创建正确的cenroll对象,但是也会出现创建对象失败,当cenroll没有被创建,但是网页上又访问cenroll时,就会抛出800A138F错误。

       可能原因:

1.1.1    浏览器安全域设置导致控件创建失败

*.alipay.com www.alipay.com ca.alipay.com 加入可信站点,然后将该域的activex控件相关选项都启用。

1.1.2    控件被屏蔽

注册表中可以屏蔽IE加载的ActiveX控件。IE、遨游、360安全卫士、杀毒软件都有可能修改注册表键值,将注册控件屏蔽。

       被屏蔽之后的现象是:IE不会有任何安装activex控件的提示

1.1.2.1            修改注册表

 

Vista以下版本(x86IE/x86OSx64IE/x64OS

Windows Registry Editor Version 5.00

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{127698e4-e730-4e5c-a2b1-21490a70c8a1}]

"Compatibility Flags"=dword:00000000

VistaWin7x86IE/x86OS x64IE/x64OS

Windows Registry Editor Version 5.00

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{127698e4-e730-4e5c-a2b1-21490a70c8a1}]

"Compatibility Flags"=dword:00000400

 

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{884e2049-217d-11da-b2a4-000e7bbb2b09}]

"Compatibility Flags"=dword:00000000

 

Vista以下版本(x86IE/x64OS

Windows Registry Editor Version 5.00

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\ActiveX Compatibility\{127698e4-e730-4e5c-a2b1-21490a70c8a1}]

"Compatibility Flags"=dword:00000000

VistaWin7x86IE/x64OS

Windows Registry Editor Version 5.00

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node \Microsoft\Internet Explorer\ActiveX Compatibility\{127698e4-e730-4e5c-a2b1-21490a70c8a1}]

"Compatibility Flags"=dword:00000400

 

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node \Microsoft\Internet Explorer\ActiveX Compatibility\{884e2049-217d-11da-b2a4-000e7bbb2b09}]

"Compatibility Flags"=dword:00000000

 

如果修改注册表之后,仍然无法解决,请设置浏览器相关项。

具体见1.1.2或者1.1.3

1.1.2.2            浏览器设置解除屏蔽(xp

1IE里面,工具->管理加载项

2)选择“Internet Explorer 中已经使用的加载项”

3)可以将“CEnroll Class”启用

1.1.2.3            浏览器设置解除屏蔽(vistaIE7

1)如果注册控件被禁用,IE7会有提示,则表示cenroll控件被禁用

 

2)可以看到,X509 Enrollment WebclassFactory 已经被禁用,这个时候,需要“启用”

1.2    800A01B680070057

800A01B6:访问了对象不存在的方法或者属性

80070057 参数无效

明明cenroll控件对象已经创建成功,代码肯定也没有问题,为什么还说访问了控件的方法不存在、参数无效呢。

       哈哈,除了1.1.1中所述,可以屏蔽控件之外,还可以替换控件。

800A01B6 80070057的错误原因就是cenroll控件被“重置”。

参考 1.1.1 中的说明,控件被屏蔽之后,还可以被“重置”。

如下图,xp下面的注册控件被屏蔽,然后被另外一个

{129D7E40-C10D-11D0-AFB9-00AA00B67A42}的控件替换。

这样当网页脚本创建{127698e4-e730-4e5c-a2b1-21490a70c8a1}控件时,实际上创建的是{129D7E40-C10D-11D0-AFB9-00AA00B67A42}控件。

 

由于被替换之后的控件无法实现cenroll控件的功能,所以网页调用时会抛出800A01B680070057的错误,这个时候其实创建的并不是cenroll控件,我们都被欺骗了。

       解决办法,和1.1.1一样,修复注册表,启用cenroll控件。

1.3    80090016

80090016错误和操作系统文件夹权限有关

C:\Documents and Settings\你的用户名\Application Data\Microsoft\Crypto\RSA,对着这个RSA文件加右键-属性-安全-添加你的用户名并赋予完全控制权限

 

可以参考http://www.ylmf.net/read.php?tid=419183

1.3.1    设置文件夹选项

 

操作:.我的电脑---工具-----文件夹选项-----查看,在此选项卡中找到高级设置,将其中使用简单文件共享和隐藏受保护的操作系统(推荐)的钩去掉,并显示所有文件和文件夹点确定

 

 

 

1.3.2    RSA文件夹授权

授予帐户 Administrators

system

C:\Documents and Settings\Administrator\Application Data\Microsoft\Crypto\rsa的完全控制权限:


 

1.3.2.1             NTFS格式

我的电脑-----C:\Documents and Settings\Administrator\Application Data\Microsoft\Crypto\
找到文件夹rsa--鼠标右键---属性----安全----添加----Administrator---检查名称(这步很重要,别直接点确定了)

 

---确定--完全控制(这步很重要,别直接点确定了)

 

 

 

   

同样道理再添加一个叫system的用户,仍然完全控制,好了以后就是这样的。

 

1.3.2.2             FAT32格式

 

我的电脑-----C:\Documents and Settings\Administrator\Application Data\Microsoft\Crypto\找到文件夹rsa--鼠标右键---属性----共享----共享此文件夹----权限-------添加----Administrator---检查名称(这步很重要,别直接点确定了)---确定--完全控制(这步很重要,别直接点确定了)

 

 其他步骤参见 [ntfs格式]

 

1.3.3     Certificates文件夹授权

授予帐户 Administrators

system

C:\Documents and Settings\Administrator\ApplicationData\Microsoft\SystemCertificates\My\Certificates 的完全控制权限:

操作我的电脑----C:\Documents and Settings\Administrator\Application Data\Microsoft\SystemCertificates\My\

找到文件夹Certificates--鼠标右键---属性----安全----添加----Administrator---检查名称(这步很重要,别直接点确定了

 

---确定--完全控制(这步很重要,别直接点确定了)

 

1.3.4     All Users文件夹的授权

授予帐户 AdministratorssystemC:\Documents and Settings\All Users的完全控制权限:

操作:我的电脑----C:\Documents and Settings\

 

找到文件夹All Users--鼠标右键---属性----安全----添加----Administrator---检查名称(这步很重要,别直接点确定了)

---确定--完全控制(这步很重要,别直接点确定了)

同样道理再添加一个叫system的用户,仍然完全控制,好了以后就是这样的。

1.3.5     启动ProtectedStorage服务

启动 ProtectedStorage 服务(在控制面板的管理工具的服务里启动,此步不赘述)

1.3.6     重启机器

2        申请之后回写证书时错误

2.1     800B0109

已处理证书链,但是在不受信任提供程序信任的根证书中终止。

Vista及以上版本中,需要用户证书的证书链已经预置在浏览器中,因此这样的用户需要手动安装证书链。

 

发表于 @ 2009年06月23日 15:01:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:window7中iframe中对CertEnroll控件的创建 | 新一篇:我被阿里旺旺强奸了!

  • 发表评论
  • 评论内容:
  •  
Copyright © roamoner
Powered by CSDN Blog