我想安装受信任的根证书。现在,我创建了一个batch / exe文件,只需单击即可安装证书。现在,我想将文件附加到一个网页,该网页将自动下载/运行exe/batch
并安装它。现在,这部分也是通过以下代码完成的(它作为activex对象):
<!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>
现在,我想检查证书是否已安装?如果根证书安装在“IE&gt;工具&gt; Internet选项&gt;内容&gt;证书&gt;受信任的根证书颁发机构”中,则它将不会尝试打开安装程序并跳过。但是,如果没有安装,那么它将尝试安装。
总之,我想要检查已安装的证书状态,然后根据该状态继续下一步。
感谢您阅读本文(我的英语太可怕了)。任何建议/提示/写作都会对这位新人有所帮助。谢谢你......
答案 0 :(得分:0)
这取决于你想要如何实现它。
使用CertOpenStore打开特定存储后,使用API: CertFindCertificateInStore 来确定证书是否存在于特定证书库中的“规范”方法(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' );
}