在MS的SDK6.0中有個認證產生工具makecert.exe, 你可以使用這個工具來產生測試用的認證。
第一步,產生一個自簽名的根憑證(issuer,簽發者)。
>makecert -n "CN=Root" -r -sv RootIssuer.pvk RootIssuer.cer
這個時候,會彈出提示框,首先給RootIssuer.pvk檔案設定私密金鑰保護口令;
然後,再次輸入這個口令用私密金鑰(在RootIssuer.pvk檔案中)來給公開金鑰(在RootIssuer.cer檔案中)加密。
第二步,使用這個認證簽發一個子認證(使用者,subject)。
>makecert -n "CN=Child" -iv RootIssuer.pvk -ic RootIssuer.cer -sv ChildSubject.pvk ChildSubject.cer
此時,會彈出提示框先給這個子認證的私密金鑰檔案ChildSubject.pvk設定保護口令;
然後,輸入這個子認證的私密金鑰(在ChildSubject.pvk中)口令來保護子認證的公開金鑰(在ChildSubject.cer中)。
接下來會提示輸入根憑證私密金鑰(在RootIssuer.pvk中)口令來簽發整個子認證(公開金鑰和使用者資訊)。
如果你還要簽發更多的子認證,類似的,使用這個認證來簽發再下層的認證,前提是ChildSubject認證也可以用於簽發(作為Issuer)用途。
備忘:
(1)如果你需要一個互動認證,用於安全通訊,那麼,加入選項 -sky exchange;
(2)如果你需要一個簽署憑證來簽發認證或者二進位檔案,那麼,加入選項 -sky signature.
(3)如果你需要一個用戶端認證來標誌你的身份,或者個人資訊保護(電子郵件),那麼,選項-n 中的E欄位是不可缺少的。
舉例:-n "CN=公司名稱, E=E-MAIL地址, O=組織名稱, OU=組織單位, C=國家, S=省份(州), P=縣城"
其他協助工具輔助:
1)密鑰憑證格式轉換成SPC。 cert2spc.exe
>cert2spc TestRoot.cer TestRoot.spc
.spc 意思是 軟體發行者認證(Software Pulisher Cerificate).
2)將密鑰憑證和私密金鑰合并成一個PFX格式的認證檔案。pvk2pfx.exe
>pvk2pfx -pvk TestRoot.pvk -spc TestRoot.spc -pfx TestRoot.pfx
輸入TestRoot.pvk的保護口令來合并.pvk和.spc檔案,如果你不設定即將合并出來的TestRoot.pfx的保護口令的話,這個保護口令和輸入檔案TestRoot.pvk的保護口令一樣。(備忘:直接從cer檔案也可以,不一定要得到SPC檔案).
3)簽名工具。signtool.exe
二進位檔案數位簽章.為了保證二進位檔案的完整性,數位簽章是一個好的方法。
以下命令啟動一個有圖形介面的檔案簽名工具嚮導:
>signtool wizard
以下是命令列方式的簽名:
>signtool sign /f "pfx檔案的全路徑" /p "pfx檔案的保護口令" /t "http://timestamp.verisign.com/scripts/timstamp.dll" /d "本次簽名的描述" "被簽名的程式的全路徑"