证书生成方法一  
   
   
  ——————————————————————————–  
   
  准备工作:  
  下载http://ftp./pub/security/authenticode.zip,里面包含了由Microsoft、OpenSSL和其它人提供的各种必要工具:  
   
  cabarc.exe:   制作.cab压缩包    
  openssl.exe:   制作PEM格式公钥、密钥    
  pvk.exe:   将PEM格式的RSA密钥转换为PVK格式    
  makecert.exe:   制作证书    
  cert2spc.exe:   转换证书格式    
  signcode.exe:   签署二进制代码或.cab压缩包    
   
  1.用openssl创建CA证书的RSA密钥(PEM格式):  
  openssl   genrsa   -des3   -out   ca.key   1024  
  //ca.key为生成的Key文件,1024为密钥的长度.也可以为2048或4096等,长度越长,加密强度越高.  
   
  2.用openssl创建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转换为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后边是证书颁发者LDAP的路径.JR21066CA.cer是证书文件.  
  //OU=后边为颁发证书的机构名,E=后边是电子邮件地址.  
   
   
     
   
  给文件签名  
   
   
  ——————————————————————————–  
   
   
  现在你就可以给你的.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>   提供给用户关于下载文件的更详细的信息。  
   
  mycredentials:从CA获得的证书文件  
   
  myprivatekey:在向CA申请过程期间生成的秘钥。  
   
  (注意如果你不带任何参数运行signcode,它将会激活一个向导帮助你一步一步完成签名过程)    
   
     
   
   
  测试签名  
   
   
  ——————————————————————————–  
   
   
  运行chktrust文件名   测试.EXE、   .DLL、或   .OCX   文件的签名  
   
  运行chktrust   -c   cab文件名.cab测试cab文件的签名  
   
  签名进程一旦工作,即会显示一个证书。  
   
  好了,现在你已经完成了为文件签名的工作。当使用Internet   Explorer从一个Web站点下载这个文件时,用户将会看到一个相同的证书。如果这个文件在经过签名程序后被篡改,就会有提示出现告诉用户不要安装。