签署代码

写在前面
准备环境
创 建CA
创建证书并安装到apache
创建证书并安装到tomcat
创建证书和 导入到Thunderbird
创建证书并签名.net文件
创建证书并签名jar文件

前言

为了识别程序是谁发行的以及是否被篡改过,出现了代码签名技术。微软的签名工具可以对exe,dll,cab等文件进行签名。

要对代码签名,需要准备三个东西:

  • 数字证书(pfx格式),
  • 签名工具,
  • 被签名文件。

获取PFX文件

“扩展名为 .pfx(个人信息交换,Personal Information Exchange)的文件。.pfx 文件包含一个证书和与之对应的私钥(PKCS #12 标准对该格式有所说明)。这类文件是高度敏感的,通常用于导入服务器上的密钥对或用于备份目的。在导出密钥对时,Windows 提供用密码加密 .pfx 文件;而在导入密钥对时,您必须再次提供此密码方可导入。”摘自:http://msdn.microsoft.com/zh-cn/magazine/cc163454.aspx#S1

在这里,我们通过openssl把key文件和crt文件合并为pfx格式。命令是

openssl pkcs12 -export -out ${cert_user}.pfx -inkey ${cert_user}.key -in ${cert_user}.crt

openssl会让我们指定pfx的密码,我指定为字符串“password”。

key文件和crt文件的做法,请参考本系列前面的文章。

准备签名工具

微软的.net sdk里包含了代码签名工具SignTool。关于该工具的详细用法,请参考

http://msdn.microsoft.com/zh-cn/library/8s9b9yaz%28v=VS.80%29.aspx

比如我的机器里(Windows7专业版,已安装Microsoft Visual C# 2010 Express) signtool位于C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\。

进行签名

在这里,通过/f指定pfx文件;通过/p指定pfx的密码;

S:\> signtool.exe sign /f [email protected] /p password App0701.exe

Done Adding Additional Store

Successfully signed: App0701.exe

S:\>

签名之后,查看文件的属性的时候会多出一个选项卡”数字签名”。

clip_image002

你可能感兴趣的:(代码,职场,休闲,签署)