2012-10-31 32 views
0

我想安装受信任的根证书。现在,我创建了一个批量/ exe文件,通过单击它来简单地安装证书。现在,我想将该文件附加到网页上,该网页将自动下载/运行exe/batch并进行安装。如何获取/访问浏览器的证书状态/信息(IE等)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

<!-- saved from url=(0014)about:internet --> 


<SCRIPT Language="JScript"> 



function fnShellExecuteJ() 

{ 

var objShell = new ActiveXObject("Shell.Application"); 

objShell.ShellExecute("D:\\New folder\\New folder\\RootInstaller.exe", "", "", "open", 1); 

} 

<HTML> 

</SCRIPT> 

<BODY> 


<body onLoad="javascript:fnShellExecuteJ();"> 

</BODY> 

</HTML> 

现在,我要检查的证书安装或不:现在,这一部分也被下面的代码(它可以作为ActiveX对象)做了什么?如果根证书安装在“IE>工具> Internet选项>内容>证书>受信任的根证书颁发机构”中,则它不会尝试打开安装程序并跳过。但是,如果没有安装,那么它会尝试安装。

总而言之,我想获取安装的证书状态来检查,然后基于该状态继续下一步。

谢谢你阅读本文(我的英文很糟糕)。任何建议/提示/写作将有助于这个新人。谢谢你.....

回答

0

这真的取决于你想如何实现它。

“规范”的方式来找出特定证书存储中是否存在证书与API:CertFindCertificateInStore你打开与CertOpenStore特定店铺之后(也有您的Windows几个证书存储)。

现在,问题是,这是C/C++代码,你必须在ActiveX(或类似的)中嵌入。对于Windows 7和8,我认为你不能避免这种情况。

对于Windows 7之前的版本(Windows XP,Windows Vista),Microsoft有一个名为CAPICOM的组件,该组件为脚本提供了对加密的访问。如果你的客户只有XP/Vista,你可以使用它,然后从页面上的JavaScript调用CAPICOM(你的用户将不得不安装它)。但是,如果您在用户计算机上运行可执行文件(要安装证书),为什么不简单安装可信的ActiveX对象(或BHO) - 您可以在JavaScript页面中测试是否存在。

即:

var MyObj; 
try { 
    MyObj = new ActiveXObject("MyActiveX"); 
    alert('my object exist'); 
} catch(err) { 
    alert('my object do not exist'); 
} 
+0

非常感谢您的回复。我认为CertFindCertificateInStore或CAPICOM都不会对我有帮助。我想从我创建的批处理/ EXE中安装证书。所以,可信的activex对象进程无法完成。 所有我想要的方式来获得,我的证书“根X”是否安装在浏览器或不?如果安装然后跳过,但如果没有安装,然后安装....... 但非常感谢您的答复。我是一个新手开发者,所以我不知道我能解释所有方面或没有(请原谅我)...... –