数字证书使用Javascript在浏览器中自动安装的解决方案

 /2011年8月24日 22:20:20 by rush/

       如果在浏览器中使用ActiveX控件,你们控件有可能因为操作系统中对浏览器的安全设置而组织控件的安装。一种解决方案是调整浏览器的安全设置使其可以下载和运行未签名的和不安全ActiveX控件,但是这种方式带来的最大的缺点是降低了浏览器的安全性,造成了用户浏览器的潜在危险性,并且从易用性的角度讲要用户自己做这些设置,尤其是没有计算机基础的用户,实现起来比较麻烦,可能会降低用户对网站内容的好感度。

    一。 一种最简单的方式是将证书下载到用户电脑上面,由用户自己来安装,这种方式易于实现,注意这里不能直接给出证书的链接,要打包,不然默认会读取证书到页面上,结果显示一堆乱码。

    二。另外一种方式是读取证书内容,放到浏览器上面让浏览器判断,然后交给用户进行交互安装,具体实现方式如下:

   1.读取证书内容。2.进行Base64Encode。3.添加头部和尾部证书安装信息。

   本例使用Java实现:

要放到页面上使其由浏览器进行处理,如下代码:

说明:设置浏览器ContentType必须为上面的证书类型,应为我的证书为spc类型的,如果是cer类型的,要改成响应的标识。

三。利用微软提供的动态链接库使用javascript进行自动安装,用户只要点击确认即可。

读取证书内容做法和上面讲的一样,只不过不是输出证书,而是把读取的证书放到浏览器上面,让Javascript读取给控件。

对于window xp ,2000等浏览器使用xenroll.dll进行操作,而对于Vista,win7等等要使用CertEnroll.dll进行操作。

xp的操作系统证书安装脚本如下:

 

对于win7类型的操作系统,采用下面的方法:

后台是如何判断操作系统类型以及浏览器类型呢?主要是通过如下的方式:

总结:由于项目的需要而使用控件,又由于为了方便使用的需要而使用证书,为了方便安装由采用自动安装的方式,上面的内容是我这几天来的总结,查询了好多的资料发现没有一个是可以兼容不同的操作系统的,我又查询了微软的官方网站,在哪里得到了一些信息,在自己的摸索下面终于成功了,如果想要这个自动安装的完整代码请支持我的博客,只要给我留言,保证在看到通知的第一时间发送出源码。

鉴于大家都来要代码,请在主页留言并留下自己的邮箱地址。

2011年8月24日 22:50:04

posted @ 2011-08-24 22:50  Rush_SONG  阅读(10856)  评论(110编辑  收藏  举报