makecert 製做數字證書

在MS的SDK6.0中有個證書生成工具makecert.exe, 你能夠使用這個工具來生成測試用的證書。算法

 

第一步,生成一個自簽名的根證書(issuer,簽發者)。安全

>makecert -n "CN=Root" -r -sv RootIssuer.pvk RootIssuer.cer工具

 

這個時候,會彈出提示框,首先給RootIssuer.pvk文件設置私鑰保護口令;測試

 

而後,再次輸入這個口令用私鑰(在RootIssuer.pvk文件中)來給公鑰(在RootIssuer.cer文件中)簽名(自簽名)。.net

 

第二步,使用這個證書籤發一個子證書(使用者,subject)。命令行

>makecert -n "CN=Child" -iv RootIssuer.pvk -ic RootIssuer.cer -sv ChildSubject.pvk ChildSubject.cercode

 

此時,會彈出提示框先給這個子證書的私鑰文件ChildSubject.pvk設置保護口令;blog

 

而後,輸入這個子證書的私鑰(在ChildSubject.pvk中)口令來獲取子證書的公鑰(在ChildSubject.cer中)。ip

(pvk裏面通常存儲rsa算法結構,能夠分別獲取公鑰和私鑰)ssl

 

接下來會提示輸入根證書私鑰(在RootIssuer.pvk中)口令來簽發子證書(公鑰和用戶信息)。

 

若是你還要簽發更多的子證書,相似的,使用這個證書來簽發再下層的證書,前提是ChildSubject證書也能夠用於簽發(做爲Issuer)用途。

 

備註:

(1)若是你須要一個交互證書,用於安全通訊,那麼,加入選項 -sky exchange

(2)若是你須要一個簽名證書來簽發證書或者二進制文件,那麼,加入選項 -sky signature.

(3)若是你須要一個客戶端證書來標誌你的身份,或者我的信息保護(電子郵件),那麼,選項-n 中的E字段是不可缺乏的。

舉例:-n "CN=公司名稱, E=E-MAIL地址, O=組織名稱, OU=組織單位, C=國家, S=省份(州),  P=縣城"

(4)若是使用openssl的小工具來生成證書能夠參考

http://blog.csdn.net/hacode/article/details/43834825

 

其餘輔助工具:

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 "本次簽名的描述" "被簽名的程序的全路徑"

相關文章
相關標籤/搜索