en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

eSigner CodeSignTool命令指南

CodeSign工具 是一个安全的、面向隐私的多平台 Java 命令行实用程序,用于远程签署 Microsoft Authenticode 和 Java 代码对象 电子签名者 EV 代码签名证书。 文件的哈希值被发送到 SSL.com 用于签名,以便不发送代码本身。 这是需要签名的敏感文件的理想选择,但不应通过网络发送进行签名。 CodeSignTool 也是自动化批处理的理想选择,用于大量签名或集成到现有 CI/CD 管道工作流中。

如果您想使用演示帐户和证书尝试 CodeSignTool,请阅读 eSigner 演示凭据和证书 获取凭据和配置信息。

有关如何操作的说明 使用 signtool.exe 或 certutil.exe 自动化 EV 代码签名 请查阅 这个方法.

如果您希望使用 esigner 代替签署文件,请 请参阅此 DocSignTool 指南.

CodeSignTool安装

要安装当前版本的CodeSignTool,只需为您的操作系统下载并解压缩正确的文件即可:

请注意,Windows 下载包括 Java 运行时,但 Linux/macOS 版本需要在您的计算机上安装 Java 运行时。 该命令的 Windows 版本是一个批处理文件 (CodeSignTool.bat),而Linux / macOS版本是shell脚本(CodeSignTool.sh).

CodeSignTool使用概述

用法: CodeSignTool [-hV] [COMMAND] [PARAMETERS]

选项:

  • -h, --help:显示帮助消息并退出。
  • -V, --version:显示版本信息并退出。

命令:

  • get_credential_ids:输出与特定用户关联的电子签名者凭据 ID 列表。
  • credential_info:输出与凭证 ID 相关的密钥和证书信息。
  • sign:签名和时间戳代码对象。
  • batch_sign:使用一个 OTP 对多个代码对象进行签名和时间戳。
  • hash:预先计算哈希值以备后用 batch_hash_sign 命令。
  • batch_sign_hash: 预先计算的签名哈希 hash 命令。

参数:

  • -access_token=<TOKEN>:OAuth 访问令牌.
  • -credential_id=<CREDENTIAL_ID>:用于签署证书的凭据 ID。
  • -input_dir_path=<PATH>:要签名的代码对象的输入目录,计算哈希值,或选择未签名的文件和相应的哈希值进行签名。
  • -input_file_path=<PATH>:要签名的代码对象的路径。
  • -otp=<OTP>:来自身份验证应用程序的 OAuth OTP 值。
  • -output_dir_path=<PATH>:将写入签名代码对象的目录。
  • -password=<PASSWORD>:SSL.com 帐户密码。
  • -program_name=<PROGRAM_NAME>:程序名称(仅适用于 MSI 安装程序)。
  • -totp_secret=<TOTP_SECRET>:OAuth TOTP秘密
  • -username=<USERNAME>: SSL.com 账户用户名
如果您的密码包含特殊字符,请用引号引起来(例如 -password="P!@^^ssword12").

CodeSignTool命令

get_credential_ids

输出与特定用户关联的电子签名者凭据 ID 列表。 参数 -username-password 是必要的。

用法: CodeSignTool [-hV] get_credential_ids -username=<USERNAME> -password=<PASSWORD>

例如:

CodeSignTool get_credential_ids -username=john.doe@example.com -password="P0z9@lxo41"
Credential ID(s):
- fe537ace-e132-52a9-c2e7-egcd2ac3f1e6

进入 CodeSignTool get_credential_ids 如果没有必需的参数,将显示该命令的用法信息。

凭证信息

输出与凭证 ID 相关的密钥和证书信息。 参数 -credential_id, -username-password 是必要的。

用法: CodeSignTool [-hV] credential_info -credential_id=<CREDENTIAL_ID> -username=<USERNAME> -password=<PASSWORD>

例如:

CodeSignTool credential_info -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" EVCS 证书主题信息: - 主题 DN:OID.1.3.6.1.4.1.311.60.2.1.3. .1.3.6.1.4.1.311.60.2.1.2=美国,OID.2.5.4.15=内华达州,OID.20081614243=私人组织,CN=SSL Corp,SERIALNUMBER=NV26,O=SSL Corp,L=休斯顿, ST=Texas, C=US - 证书到期时间:21 年 21 月 37 日星期一 2024:3:XNUMX EST - 发行人 DN:CN=SSL.com EV 代码签名中间件 CA RSA RXNUMX,O=SSL Corp,L=Houston,ST=Texas , C=美国

进入 CodeSignTool credential_info 如果没有必需的参数,将显示该命令的用法信息。

签署

签名和时间戳代码对象。 参数 -username, -password-input_file_path 是必要的。 -credential_id 仅具有多个eSigner代码签名证书的用户才需要。 -output_dir_path, -program_name-totp_secret 是可选的。

用法: CodeSignTool sign [-hV] [-credential_id=<CREDENTIAL_ID>] -username=<USERNAME> -password=<PASSWORD> -input_file_path=<PATH> [-output_dir_path=<PATH>] [-program_name=<PROGRAM_NAME>] [-totp_secret=<TOTP_SECRET>]

可选参数:

  • If -credential_id 省略,并且用户只有一个eSigner代码签名证书,CodeSignTool将默认为该证书。 如果用户具有多个代码签名证书,那么此参数是必需的。
  • If -output_dir_path 省略,在中指定的文件 -input_file_path 将被签名文件覆盖。 CodeSignTool将在覆盖文件之前提示用户。
  • If -program_name MSI安装程序签名时出现,则该值将在确认对话框中显示为程序名称。
  • If -totp_secret 如果存在,CodeSignTool将计算基于时间的OTP进行签名,从而可以自动使用该工具。 如果不存在此参数,将提示用户手动输入OTP。
有关在eSigner中注册EV代码签名证书和设置两因素身份验证的信息,请阅读 使用eSigner进行远程EV代码签名。 有关TOTP机密值的信息,请参阅 自动执行eSigner EV代码签名.

例子:

手动输入OTP:

CodeSignTool 签名 -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" -output_dir_path=signed -input_file_path=test.exe 输入 OTP - 按 Enter 继续:884646 代码签名成功:C:\Users\John Doe\Desktop\CodeSignTool-v1.0-windows\signed\test.exe

自动生成OTP:

CodeSignTool sign -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" -totp_secret=ii5gVvZ9G+WkxB3FauAnoL/z14AXSMistcE0jZMWWNSjQDlql2kt2D6Z+l8= -output_dir_path=signed -input_file_path=test.exe
Code signed successfully: C:\Users\John Doe\Desktop\CodeSignTool-v1.0-windows\signed\test.exe

进入 CodeSignTool sign 如果没有必需的参数,将显示该命令的用法信息。

如果您收到错误消息, Error: invalid otp 尝试对文件进行签名时,可能是由以下一个或多个问题引起的:

  • 您扫描到身份验证应用程序中的QR码与命令中的用户名,密码和/或凭据ID不匹配。 如果发生以下情况,可能会发生这种情况:
    • 您在设备上为2FA配置了多个帐户,然后选择了错误的帐户。
    • 您正在尝试将登录凭据用于 共享证书,但扫描了队友从其帐户共享的QR码。
  • 您输入的OTP已过期。
  • 您的命令包含无效的TOTP机密。
一些 eSigner 用户在对使用 Microsoft Visual Studio 构建的 MSI 安装程序进行签名时报告了签名无效的问题。 作为一种解决方法,我们建议使用以下命令构建您的 MSI 文件 WiX 工具集. 为了方便 Visual Studio 用户, WiX 工具集 VS 扩展 是可用的。

批号

注意:100 是每批允许签名的最大代码文件数。

使用一个 OTP 对多达 100 个代码文件进行签名和时间戳。 参数 -username, -password-input_dir_path 是必要的。 -credential_id 仅具有多个eSigner代码签名证书的用户才需要。 -output_dir_path, -program_name-totp_secret 是可选的。

用法: CodeSignTool [-hV] batch_sign [-credential_id=<CREDENTIAL_ID>] -username=<USERNAME> -password=<PASSWORD> -input_dir_path=<PATH> [-output_dir_path=<PATH>] [-program_name=<PROGRAM_NAME>] [-totp_secret=<TOTP_SECRET>]

可选参数:

  • If -credential_id 省略,并且用户只有一个eSigner代码签名证书,CodeSignTool将默认为该证书。 如果用户具有多个代码签名证书,那么此参数是必需的。
  • If -output_dir_path 被省略,指定的文件 -input_dir_path 将被签名文件覆盖。 CodeSignTool 将在覆盖文件之前提示用户。
  • If -program_name MSI安装程序签名时出现,则该值将在确认对话框中显示为程序名称。
  • If -totp_secret 如果存在,CodeSignTool将计算基于时间的OTP进行签名,从而可以自动使用该工具。 如果不存在此参数,将提示用户手动输入OTP。

例如:

CodeSignTool batch_sign -username=john.doe@example.com -password="P0z9@lxo41" -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -input_dir_path=input -output_dir_path=output 输入OTP - 按回车455145继续:批量签名命令成功执行。 签名文件的输出目录:output

进入 CodeSignTool batch_sign 如果没有必需的参数,将显示该命令的用法信息。

哈希

预先计算哈希值供以后使用 batch_hash_sign 命令。 范围 -input_dir_path 是必须的。 -program_name 是可选的

用法: CodeSignTool [-hV] hash -input_dir_path=<PATH> [-program_name=<PROGRAM_NAME>]

可选参数:

  • If -program_name MSI安装程序签名时出现,则该值将在确认对话框中显示为程序名称。

例如:

CodeSignTool hash -input_dir_path=input Hash 命令执行成功。 在以下位置创建的哈希文件:输入

进入 CodeSignTool hash 如果没有必需的参数,将显示该命令的用法信息。

batch_sign_hash

预先计算的签名哈希 hash 命令。 参数 -access_token, input_dir_path, -otpoutput_dir_path 是必要的。 -credential_id 仅具有多个eSigner代码签名证书的用户才需要。

用法: CodeSignTool [-hV] batch_sign_hash -access_token=<ACCESS_TOKEN> [-credential_id=<CREDENTIAL_ID>] -input_dir_path=<PATH> -output_dir_path=<PATH> -otp=<OTP>

可选参数:

  • If -credential_id 省略,并且用户只有一个eSigner代码签名证书,CodeSignTool将默认为该证书。 如果用户具有多个代码签名证书,那么此参数是必需的。

例如:

CodeSignTool batch_sign_hash -access_token=eyJraWQiOiJmUE1yYUdlbXVMWGUtcG9JWUtLem1CMEYwYXlFczktUEpiN29lTWFlY2I0IiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJTU
0wuY29tIEF1dGhlbnRpY2F0aW9uIFNlcnZpY2UiLCJleHAiOjE2MTQ4OTcxNDIsImlhdCI6MTYxNDg5MzU0MiwianRpIjoiZmI2OTZlNDUtMTIzOS00ZGE4LW
I1MmYtODNkZDE2MTY3ZTM3IiwidXNlciI6eyJ1c2VyX2lkIjoxMzIyODU4LCJ1c2VyX2VtYWlsIjoiYWFyb24uZS5ydXNzZWxsQGdtYWlsLmNvbSIsInNzbF9
hY2NvdW50X2lkIjo0NzQzMDJ9LCJjbGllbnQiOnsiaWQiOiJmUE1yYUdlbXVMWGUtcG9JWUtLem1CMEYwYXlFczktUEpiN29lTWFlY2I0In19.fCKDs1igjsI
UDG2sUN_2OTb90Jw1nKNPHcD1MyEUR6sHCv_aJmcvcaFRne_eKLHzeQ9WtT5y3Fb2ppc50kMnjPG6JgX5gnFMptMn-ySsI277CtKbkSn3u-WSDSovn51jPm82
4wTeJmuXEzdv9clRjTwp6VoM9eqHCIaDAd3MP2xpMaa35cZbDaaAFKQ7jxWo9dUuTZY7DsKK0p1LloUEnmNxtNimQ3GDwkj_M600WB1zYrhDL9_3oZKaXcUx9
qzHcBCLzGgeaZ0xdpZtADxmXDUCcmkZi20yQ53bxqVL2w00sJ73efKB7JGeGWVehO-ZlGs3PUQwooox1JgEgcsA -credential_id=fe537ace-e132-52a9
-c2e7-egcd2ac3f1e6 -input_dir_path=input -output_dir_path=output -otp=142392
Batch sign hash command executed successfully. Output directory for signed files: output

进入 CodeSignTool batch_sign_hash 如果没有必需的参数,将显示该命令的用法信息。

视频:使用 eSigner 和 CodeSignTool 进行云 EV 代码签名

感谢您选择SSL.com! 如有任何疑问,请通过电子邮件与我们联系 Support@SSL.com,致电 1-877-SSL-SECURE,或只需单击此页面右下方的聊天链接。 您还可以在我们的网站上找到许多常见支持问题的答案 知识库.

分享到Twitter
Twitter
在Facebook上分享
Facebook
分享到LinkedIn
LinkedIn
分享Reddit上
Reddit
分享电子邮件
电子邮箱