證書生成方法一
——————————————————————————–
準(zhǔn)備工作:
下載http://ftp./pub/security/authenticode.zip,里面包含了由Microsoft、OpenSSL和其它人提供的各種必要工具:
cabarc.exe: 制作.cab壓縮包
openssl.exe: 制作PEM格式公鑰、密鑰
pvk.exe: 將PEM格式的RSA密鑰轉(zhuǎn)換為PVK格式
makecert.exe: 制作證書
cert2spc.exe: 轉(zhuǎn)換證書格式
signcode.exe: 簽署二進制代碼或.cab壓縮包
1.用openssl創(chuàng)建CA證書的RSA密鑰(PEM格式):
openssl genrsa -des3 -out ca.key 1024
//ca.key為生成的Key文件,1024為密鑰的長度.也可以為2048或4096等,長度越長,加密強度越高.
2.用openssl創(chuàng)建CA證書(PEM格式,假如有效期為一年):
openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config openssl.cnf
//ca.crt為生成的證書文件,openssl.cnf為配置文件.
3.將PEM格式的ca.key轉(zhuǎn)換為Microsoft可以識別的pvk格式。
pvk -in ca.key -out ca.pvk -nocrypt -topvk
證書生成方法二
——————————————————————————–
1.下載簽名工具包
http://msdn.microsoft.com/MSDN-FILES/027/000/219/codesign.exe
運行
makecert -sk myNewKey -r -n “CN=JR21066 CA,OU=JR21066
CA,O=JR21066,E=jr@wn163.net” -ss myNew.cer JR21066CA.cer
//myNewKey是私鑰,用于證明此證書屬于你.-n后邊是證書頒發(fā)者LDAP的路徑.JR21066CA.cer是證書文件.
//OU=后邊為頒發(fā)證書的機構(gòu)名,E=后邊是電子郵件地址.
給文件簽名
——————————————————————————–
現(xiàn)在你就可以給你的.EXE、 .CAB、 .OCX、或者 .DLL文件簽名了。范例如下:
signcode -prog myfilename -name displayname -info <a
href=”">http://www.</a> -spc mycredentials.spc
-pvk myprivatekey.pvk
myfilename:要簽名的文件名稱
displayname:證書中對該文件的描述
<a href=”">http://example.microsoft.com</a> 提供給用戶關(guān)于下載文件的更詳細的信息。
mycredentials:從CA獲得的證書文件
myprivatekey:在向CA申請過程期間生成的秘鑰。
(注意如果你不帶任何參數(shù)運行signcode,它將會激活一個向?qū)椭阋徊揭徊酵瓿珊灻^程)
測試簽名
——————————————————————————–
運行chktrust文件名 測試.EXE、 .DLL、或 .OCX 文件的簽名
運行chktrust -c cab文件名.cab測試cab文件的簽名
簽名進程一旦工作,即會顯示一個證書。
好了,現(xiàn)在你已經(jīng)完成了為文件簽名的工作。當(dāng)使用Internet Explorer從一個Web站點下載這個文件時,用戶將會看到一個相同的證書。如果這個文件在經(jīng)過簽名程序后被篡改,就會有提示出現(xiàn)告訴用戶不要安裝。