Tag Archives: alipay

关于支付宝证书错误 800A138F

关于支付宝的证书使用中出现的 800A138F 错误是个老问题了。这里尝试对这个问题做说说个人看法。

历史原因说来话长,我尽量说得简要一些。首先需要涉及证书(Certificate )在操作系统中通过 ActiveX 形式的登记(Enrollment )这事儿。在 Windows XP 之前,延续使用的是 XEnroll.dll 这个库接口。但是因为这东西比较古老,且出于”更安全”、更方便开发的角度上考虑,从 Windows Vista 与 Windows Server 2008 开始引入 CertEnroll.dll (参考)。这个差异也导致了支付宝证书在不同版本的操作系统间的导出再导入可能会出现问题。

一般来说,错误信息类似如下:

错误原因:'cenroll' 为空或不是对象,错误代码:800A138F
Microsoft XEnroll,在产生密钥对时失败!错误原因:'null'为空或不是对象,错误编码:800A138F

(这个错误信息表明是使用 XEnroll.dll 过程中出现了问题。)

不知出于什么考虑,微软上 Vista 的时候居然没考虑到 XEnroll.dll 这东西没了,向后兼容性如何处理呢? 而有些第三方开发厂商也不是未卜先知。所以,Vista 大量涌入市场的时候就暴露出来了问题(当然第三方开发商也要狠狠的打自己自己一个嘴巴)。微软的拿手解决方案就是发行一个补丁 ,在 Vista 和 Windows Server 2008 上也能使用老的 “Certificate Services Web enrollment pages” (其实就是给 操作系统里安装一个 XEnroll.dll 库)。参见知识库 922706

这个 800A138F 错误大多数时候出现在 Vista 系统上。也是有很多其他客观因素的,其中比较主要的一个是 User Account Control(UAC)这个特性带来的麻烦。UAC 默认级别替用户”多考虑许多”,安全级别控制的很好,好到这个安全成了麻烦。这个如果通过系统管理员用户一项一项的去设置的话,是可以对付安装上的,但是不可避免的是,很多用户不是操作系统专家,甚至不知道什么是”系统管理员”,所以如果把 UAC 关闭的话,可能会直接省了不少麻烦,但是这样的话,又有很多用户会觉得安全性受到了威胁,也难免抓狂,这个选择很是两难。

除了 Vista ,在 XP 上也会遇到这个错误。一般来说,某些第三方的小工具会禁止 Microsoft Certificate Enrollment CAB (这也是非常头疼的一个问题),这种情况下可以考虑修改注册表或者是在这类工具的插件管理的地方把这个 CAB 放开。或者考虑修改注册表的方式 (参考)。

我的个人建议是:不要使用 Windows Vista !(请默念10遍:Windows Vista 是个烂系统) 这是个微软内部都承认失败的操作系统。使用老的 Windows XP 吧,毕竟,微软已经承诺对 XP 延续支持到 2011 年了。至于 Windows 7 ,尽管叫好声不断,但我们现在只能期待。

另外,对于 IE 用户,建议使用 IE7 或者 IE8 (IE6 出来已经有 10 年,老掉牙矣,且从安全性的角度上考虑也的确不佳)。

以上是对支付宝证书错误 800A138F 的一点非专业解释,兄弟我并非 Windows 操作系统专家,期待对 Windows 操作系统更为熟悉的朋友进行补充以及纠正。现在情况已经如此,一刀切解决问题似乎不太现实,没有理由推卸任何责任(尽管个别读者可能这么认为),只能尽量、尽快改进–现在已经在和合作方一起进行对此错误的处理!

用户的痛苦我也是感同身受!这并非客套话。

EOF

注意:这篇文章有实效性,且包括作者本人主观看法。

更新:从用户的反馈来看,Windows 7 比 Vista 易用性和性能好了很多,推荐使用。

程立在 SD2C 2008 上的演讲 PPT

这是支付宝首席架构师程立在 CSDN 软件开发 2.0 技术会议(SD2C 2008)上的技术演讲《大规模SOA系统中的分布事务处理》的 PPT 最后定稿。好几位朋友可能都等着着急了吧。

感谢程立的激情演讲与无私分享。原稿件大约有 8M ,我稍微转换了一下,放到了 SlideShare 上,便于更好的传播。如果要下载,点击上面的链接到 SlideShare 上即可。

关于程立

现任支付宝(中国)网络技术有限公司首席架构师,专注于电子支付系统的分布式服务架构与开放架构研究。 2004年程立开始参与淘宝网与支付宝系统的建设,2005年起进入支付宝后一直从事互联网电子支付系统的研发工作,是支付宝发展的见证人之一。

针对这次技术大会,程立说:

去讲这个主题的目的很简单,希望分享一下对大家可能有用的经验,说一些曾经困扰我们的问题,并给出我们的解决办法,不一定是最好的,不一定是正确的,但源自于亲身实践,并经过生产环境的严格验证。

延伸阅读:程立谈架构、敏捷和SOA实践

大家针对该 PPT 有任何问题,请留言或者发邮件给我,我将第一时间转给程立。

EOF

BTW: 支付宝架构组目前还在招聘架构师,有意者发邮件给: [email protected]

补充 :

支付宝已支持 Linux 下的 Firefox

小道消息:Linux 操作系统下的 Firefox 用户,从现在开始也可以用支付宝了。参见支付宝官方网志安装指导。最近微软黑屏事件闹得挺凶,但这个时候支付宝发布新的安全控件,应该和此事无关。

至于很多苹果用户期待的在 Mac 下使用支付宝的事情,请稍安勿躁,有望在 11 月中旬得到解决。届时也将在支付志第一时间发布。支付宝安全工程师一直在努力!

支持 Mac 操作系统,通用的数字证书,更为安全、开放的支付宝时代即将到来。

EOF

毕业生该怎么找互联网行业的工作?

“小样,才参加几场招聘会就想给同学们指路啊? ” 尽管有的人或这样质疑,但还是在这里唠叨几句。IT 相关毕业生应该怎么找工作?其实这个话题我真的考虑了一段时间了。

基础课程不能丢掉

操作系统、数据结构、数据库理论这些基础课程不能学过之后就丢掉,温故而知新,这些是将来找工作面试时候的基础,而不靠什么《面试宝典》打通关。

学校里会学到很多有用的理论,但是学到一个理论一定要尽量尝试实践一下。我曾经问一个信息安全方面的同学公钥私钥是怎么回事,然后再问自称熟悉 Linux 的他是否尝试配置过 OpenSSH ,公钥私钥对应里面的哪些东西…结果还是让我挺失望的。

业余时间投入小创业团队

任何一个城市都有很多起步中的互联网公司,尽可能的加入到他们的团队中锻炼一下自己,毛遂自荐,做了就比不做要好,跑去和他们聊一下也比你窝在宿舍玩一天游戏要好得多。

一旦能够加入这样的团队,哪怕干活不要钱也值得,何况从中能接触到整个网站各个环节的东西,能够很好的开拓技术视野,这些将来都是你的财富。

Tips: 比如南京地区就有途牛

积极投入一些开源软件的开发、实践中去

Sourceforge.net 上的项目一抓一大把,优秀的项目更是比比皆是。加入其中,熟悉一下版本控制、文档书写、多人协作,看看分布在全世界的牛人、准牛人的代码是怎么写的,远比给导师做的那些小作坊项目更有价值(当然,你最好不要读研究生了)。

多留心企业招聘的职位描述

恐怕很少学校会专门设置有”配置管理”、”软件测试”之类的课程,但是企业需要这样的人。那些招聘需求上怎么写的? 那就可以是你的学习目标啊!现在网络这么发达,什么学习资料找不到?

形成差异化竞争

一个年级假定有 100 人,所有人的课程都是一样的。那么你认为和 99 人竞争 5 个岗位容易,还是 5 个人竞争一个岗位容易?

如果做不到 100 人中的 Top 5,那或许可以尝试做一下100人之外的 Top5。一些看似偏门的东西其实挺管用的,学校的课程其实只是基础,现实却是复杂的。毕竟互联网行业不只是需要写代码的人。

建立一个个人站点

尝试记录一些学习心得,分享更多才能发现更多,才能得到更多,也锻炼一下自己的文档写作能力。

学习一下如何写 HTMLCSS 这些看似很土的东西,实践一下 TCP/IP 相关的东西。

再写下去就老生常谈了,或许以上这几个建议对要进入 IT 行业的同学有点帮助。

这篇文章不适用于如下几类同学:

  • 天才 (没毕业就一堆公司排队请的同学)
  • 立志做研究的人(一心想设计出中国自己的操作系统,自认为有能力自己从头打造一个 Linux 的)
  • 家里足够有银子,毕业后自己做老板去招聘别人的
  • 看了以上的建议觉得完全是胡说八道的同学

EOF

补充一下,关于”差异化”的观点,我不是说要所有人都这样做。更多是对非科班的同学一个提醒。同时,以上所有的建议并不是即时收效的,需要提前做一点准备。

延伸阅读: