我已经为我的程序购买了证书。
我购买证书的网站向我发送了一个 .cer 文件(43-some-really-long-name-9962812767788.cer)。没有其他文件被发送,但我几乎可以百分之百地确定我不需要任何其他文件。
当我单击那个 .cer 文件时,会显示以下信息:
- for:(我的数据)
- by:Certum Code Signing CA
- expires:2014-10-24
所有这些信息似乎都没问题。
我有一个 .exe 文件,想用它来签名(例如,当用户在 Windows 上以管理员身份运行它时,他将能够看到证书信息)。
我发现可以使用 signtool.exe 进行签名,但它总是返回错误,指出未找到符合所有条件的证书。
到目前为止,我已经在计算机帐户的“受信任的根证书颁发机构”存储中安装了 .cer(我认为我是以正确的方式完成的),根据 MSDN博客 的说法:
失败了,因为我不知道我的证书中的"CER_NAME_HERE"是什么。
那么,如何使用仅.cer文件(以及从该.cer文件生成的所有文件)对我的程序进行签名(在我的.exe中添加.cer)?
我没有证书、.cer和所有证书术语的经验,请在回答时考虑这一点(我是一个简单的人... ;)
到目前为止,我已经在计算机帐户的“受信任的根证书颁发机构”存储中安装了 .cer(我认为我是以正确的方式完成的),根据 MSDN博客 的说法:
- 开始 -> 运行 -> MMC
- 文件 -> 添加/删除Snap in...
- 从“添加或删除Snap-ins”窗口中选择“证书”,然后单击“添加>”。选择“计算机帐户”,然后单击“下一步”。
- 选择“本地计算机”,然后单击“完成”。
- 在左侧窗格中打开“受信任的根证书颁发机构”存储,并单击“证书”,如图7所示。然后右键单击右窗格并选择“全部任务 -> 导入”。
- 导入上面创建的 .cer 文件并安装它。
我现在确实在MMC中看到了我的cer:
然而,我不知道如何正确使用signtool.exe。 命令:
Signtool sign /v
/t http://timestamp.verisign.com/scripts/timstamp.dll
/n CER_NAME_HERE FileToSign.exe
失败了,因为我不知道我的证书中的"CER_NAME_HERE"是什么。
/n
标志中(在MSFT文档中称为SubjectName
)的<Issued_To>
与x509Certificate
类的Subject
或SubjectName
属性不同...它实际上是证书主体名称的通用名称CN="ABC"
部分。 - Reahreic