2012-10-31 69 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」是否安裝在瀏覽器或不?如果安裝然後跳過,但如果沒有安裝,然後安裝....... 但非常感謝您的答覆。我是一個新手開發者,所以我不知道我能解釋所有方面或沒有(請原諒我)...... –