ActiveX控制元件可以自己簽名,但是證照認證需要花錢的,不過也可以使用一種辦法不用花錢就能認證。
數字簽名工具包下載:SignTool.rar /Files/KimSky/SignTool.rar
-----------------------------------------------------
一.自己建立證照檔案:
-----------------------------------------------------
1. 先使用makecert /sv "私鑰檔名.pvk" /n "CN=你的資訊" "證照檔名.cer",建立相應的
私鑰和證照檔案(會有成功提示)
私鑰要讓你輸入一個字串,前後要輸一樣。我直接用GUID
2、使用cert2spc "證照檔名.cer" "#7檔名.spc" (會有成功提示)
3、使用VB做好控制元件,並生成OCX檔案,經過打包成.CAB檔案(同時還有個測試用的.HTM檔案)
4、雙擊signcode執行。
一、選擇被加入證照的檔案(這兒最容易出錯,應選擇那個.CAB檔案,很多朋友是選了.OCX檔案,就是錯在這兒了)
二、(使用自定義)選擇.SPC檔案
三、選擇.PVK檔案。
下面就一路NEXT就行了。
-----------------------------------------------------
二.使用第三方認證證照:這裡使用支付寶證照
-----------------------------------------------------
1.雙擊開啟SignCode.exe,選擇要數字簽名的cab檔案。
2.選擇自定義。
3.選擇“從儲存區選擇...”
然後一路 下一步 就可以了。
其中時間戳伺服器,這裡有個免費的:http://timestamp.verisign.com/scripts/timstamp.dll 寫上去就完了,這樣就完成了簽名
也可以不填寫時間戳
至此,數字簽名完成
在DOS視窗下,輸入
對我們的成果進行檢驗
最後說明一下,使用的證照是淘寶網支付寶的證照,只要你有用支付寶,那麼你就有這麼一個以你名字命名的數字證照,同時也不怕證照會過期,只要證照過期了,你上淘寶網,登出一下證照,重新生成一份就是了。
因我的系統是Windows 2008 所以如果你用Vista以前的系統執行後看到的圖片跟我的貼圖可能有點不一樣。
有一個問題要注意,如果簽名成功後,你的控制元件還是無法在IE中顯示,那很大的可能是你控制元件本身有問題。
在實際應用當中並不是所有的電腦使用者都有使用《淘寶》網上購物的,那麼,針對這類使用者,其實有一個很另類的方法,就是在網頁上用JavaScript來判斷對方電腦是否安裝有《淘寶》的安全外掛,如果沒有,那麼在程式碼中連線到《淘寶》網下載安裝一個控制元件,這樣在客戶電腦上就有了淘寶的根證照了,然後會再下載安裝我們的控制元件。
以下為在網頁中插入的指令碼:
var itruspta1;
try {
itruspta1=new ActiveXObject("PTA.iTrusPTA");
}catch(e){
}
//判斷是否安裝控制元件
if(itruspta1==null){
document.write("<OBJECT id=\"iTrusPTA\" codeBase=\"https://img.alipay.com/download/1101/aliedit.cab#Version=2,4,2,471\" classid=\"clsid:1E0DFFCF-27FF-4574-849B-55007349FEDA\" style=\"width:1px;height:1px;\"></OBJECT>");
}else {
}
</script>
我覺得使用第二種方式可以免費使用證照,但是可能會對你的這個證照造成不安全因素。
所以我想還得找另一種方法:ActiveX手動下載安裝包。
參考:
http://www.cnblogs.com/babyt/archive/2005/03/14/118309.html
http://www.lougoo.com/blog/article.asp?id=234
http://www.cnblogs.com/interdrp/archive/2009/05/03/1448382.html