文件签名工具 是一个安全的、面向隐私的多平台 Java 命令行实用程序,用于使用远程签名 PDF 文件 电子签名者 文件签名证书。文档的哈希值将发送到 SSL.com 进行签名,这样文档本身就不会被发送。当敏感文档需要签名但不应通过网络发送进行签名时,这是理想的选择。 DocSignTool 也是大批量签名或集成到现有文档工作流程的自动化批处理的理想选择。
如果您希望使用 esigner 来签署代码和可执行文件,请 请参阅此 CodeSignTool 指南.
DocSignTool 安装
要安装当前版本的 DocSignTool,只需为您的操作系统下载并解压缩正确的文件:
请注意,Windows 下载包括 Java 运行时,但 Linux/macOS 版本需要在您的计算机上安装 Java 运行时。 该命令的 Windows 版本是一个批处理文件 (DocSignTool.bat
),而Linux / macOS版本是shell脚本(DocSignTool.sh
).
DocSignTool 使用概述
用法: DocSignTool [-hV] [COMMAND] [PARAMETERS]
选项:
-h
,--help
:显示帮助消息并退出。-V
,--version
:显示版本信息并退出。
命令:
get_credential_ids
:输出与特定用户关联的电子签名者凭据 ID 列表。credential_info
:输出与凭证 ID 相关的密钥和证书信息。sign
:签名和时间戳 PDF filr。batch_sign
:使用一个 OTP 对多个 PDF 文件进行签名和时间戳。hash
:预先计算哈希值以备后用batch_hash_sign
命令。batch_sign_hash
: 预先计算的签名哈希hash
命令。
参数:
-access_token=<TOKEN>
:OAuth 访问令牌.-contact_info=<CONTACT_INFO>
: 联系信息。-credential_id=<CREDENTIAL_ID>
:用于签署证书的凭据 ID。-input_dir_path=<PATH>
:要签名的 PDF 文件的输入目录,计算哈希值,或选择未签名的文件和相应的哈希值进行签名。-input_file_path=<PATH>
: 要签名的 PDF 文件的路径。-otp=<OTP>
:来自身份验证应用程序的 OAuth OTP 值。-output_dir_path=<PATH>
:将写入签名 PDF 文件的目录。-page_no=<PAGE_NUMBER>
:将出现可见签名的 PDF 文档页面。-password=<PASSWORD>
:SSL.com 帐户密码。-sig_field_position=<X, Y, WIDTH, HEIGHT>
:可见签名在 PDF 上的位置。-signing_location=<SIGNING_LOCATION>
: 签署文件的位置。signing_reason=<SIGNING_REASON>
: 签名的原因。-totp_secret=<TOTP_SECRET>
:OAuth TOTP秘密-username=<USERNAME>
: SSL.com 账户用户名
-password="P!@^^ssword12"
).DocSignTool 命令
获取凭据 ID
输出与特定用户关联的电子签名者凭据 ID 列表。 参数 -username
和 -password
是必要的。
用法: DocSignTool [-hV] get_credential_ids -username=<USERNAME> -password=<PASSWORD>
示例:
DocSignTool get_credential_ids -username=john.doe@example.com -password="P0z9@lxo41" Credential ID(s): - fe537ace-e132-52a9-c2e7-egcd2ac3f1e6
进入 DocSignTool get_credential_ids
如果没有必需的参数,将显示该命令的用法信息。
凭证信息
输出与凭证 ID 相关的密钥和证书信息。 参数 -credential_id
, -username
及 -password
是必要的。
用法: DocSignTool [-hV] credential_info -credential_id=<CREDENTIAL_ID> -username=<USERNAME> -password=<PASSWORD>
示例:
DocSignTool credential_info -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" 签名证书主题信息: - 主题 DN:CN=JOHN DOE、O=SSL Corp ,L=休斯顿,ST=德克萨斯州,C=美国 - 证书到期:11 年 14 月 52 日星期六 59:2023:2 EST XNUMX - 颁发者 DN:CN=SSL.com 客户端证书中间 CA RSA RXNUMX,O=SSL Corp,L=休斯顿, ST=德克萨斯州, C=美国
进入 DocSignTool credential_info
如果没有必需的参数,将显示该命令的用法信息。
签署
签名和时间戳 PDF 文件。 参数 -username
, -password
及 -input_file_path
是必要的。 -credential_id
只有拥有多个 eSigner 文档签名证书的用户才需要。 -output_dir_path
, -signing_location
, -signing-reason
, -contact_info
, -sig_field_position
, -page_no
及 -totp_secret
是可选的。
用法: DocSignTool sign [-hV] [-credential_id=<CREDENTIAL_ID>] -username=<USERNAME> -password=<PASSWORD> -input_file_path=<PATH> [-output_dir_path=<PATH>] [-signing_location=<SIGNING_LOCATION>] [-signing_reason=<SIGNING_REASON>] [-contact_info=<CONTACT_INFO>] [-sig_field_position=<X, Y, WIDTH, HEIGHT>][-page_no=<PAGE_NUMBER>] [-totp_secret=<TOTP_SECRET>]
可选参数:
- If
-credential_id
省略并且用户只有一个 eSigner 文档签名证书,DocSignTool 将默认为该证书。 如果用户拥有多个文档签名证书,则此参数是必需的。 - If
-output_dir_path
省略,在中指定的文件-input_file_path
将被签名文件覆盖。 DocSignTool 将在覆盖文件之前提示用户。 - If
-signing_location
存在,指定的位置将被添加到数字签名中。 - If
-signing_reason
存在,指定的签名原因将被添加到数字签名中。 - If
-contact_info
存在,指定的文本将被添加到数字签名中。 尽管包含在签名中,但此信息不会包含在可见的签名注释(如果存在)中。 - If
-sig_field_position
存在,一个可见的签名注释将被添加到指定页面上的文档中-page_no
. 职位和签名应按以下格式提供"x, y, width, height"
. -page_no
仅在创建可见签名时才需要-sig_field_position
并指定将出现可见签名注释的文档页面。- If
-totp_secret
存在时,DocSignTool 将计算基于时间的 OTP 进行签名,从而允许自动使用该工具。 如果此参数不存在,系统将提示用户手动输入 OTP。
例子:
带有可见签名的手动 OTP 输入:
DocSignTool 签名 -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" -output_dir_path=signed -input_file_path=test.pdf -sig_field_position="100, 200, 150, 70" -page_no=1 -signing_location="Houston, Texas" -signing_reason="document approved" -contact_info="support@ssl.com" 输入 OTP - 按 Enter 继续:884646 PDF 签名成功:output\test.pdf
自动 OTP 生成,无可见签名:
DocSignTool sign -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" -output_dir_path=signed -input_file_path=test.pdf -totp_secret=ii5gVvZ9G+WkxB3FauAnoL/z14AXSMistcE0jZMWWNSjQDlql2kt2D6Z+l8= PDF signed successfully: output\test.pdf
进入 DocSignTool sign
如果没有必需的参数,将显示该命令的用法信息。
Error: invalid otp
尝试对文件进行签名时,可能是由以下一个或多个问题引起的:
- 您扫描到身份验证应用程序中的QR码与命令中的用户名,密码和/或凭据ID不匹配。 如果发生以下情况,可能会发生这种情况:
- 您在设备上为2FA配置了多个帐户,然后选择了错误的帐户。
- 您正在尝试将登录凭据用于 共享证书,但扫描了队友从其帐户共享的QR码。
- 您输入的OTP已过期。
- 您的命令包含无效的TOTP机密。
批号
使用一个 OTP 对多达 100 个 PDF 文件进行签名和时间戳。 参数 -username
, -password
及 -input_dir_path
是必要的。 -credential_id
只有拥有多个 eSigner 文档签名证书的用户才需要。 -output_dir_path
, -signing_location
, -signing-reason
, -contact_info
, -sig_field_position
, -page_no
及 -totp_secret
是可选的。
用法: DocSignTool [-hV] batch_sign [-hV] [-credential_id=<CREDENTIAL_ID>] -username=<USERNAME> -password=<PASSWORD> -input_dir_path=<PATH> [-output_dir_path=<PATH>] [-signing_location=<SIGNING_LOCATION>] [-signing_reason=<SIGNING_REASON>] [-contact_info=<CONTACT_INFO>] [-sig_field_position=<X, Y, WIDTH, HEIGHT>][-page_no=<PAGE_NUMBER>] [-totp_secret=<TOTP_SECRET>]
可选参数:
- If
-credential_id
省略并且用户只有一个 eSigner 文档签名证书,DocSignTool 将默认为该证书。 如果用户拥有多个文档签名证书,则此参数是必需的。 - If
-output_dir_path
被省略,指定的文件-input_dir_path
将被签名文件覆盖。 DocSignTool 将在覆盖文件之前提示用户。 - If
-signing_location
存在,指定的位置将被添加到数字签名中。 - If
-signing_reason
存在,指定的签名原因将被添加到数字签名中。 - If
-contact_info
存在,指定的文本将被添加到数字签名中。 尽管包含在签名中,但此信息不会包含在可见的签名注释(如果存在)中。 - If
-sig_field_position
存在,一个可见的签名注释将被添加到指定页面上的文档中-page_no
. 职位和签名应按以下格式提供"x, y, width, height"
. -page_no
仅在创建可见签名时才需要-sig_field_position
并指定将出现可见签名注释的文档页面。- If
-totp_secret
存在时,DocSignTool 将计算基于时间的 OTP 进行签名,从而允许自动使用该工具。 如果此参数不存在,系统将提示用户手动输入 OTP。
示例:
DocSignTool 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 -sig_field_position="100, 200, 150, 70" -page_no=1 -signing_location="Houston, Texas" -signing_reason="document approved" -contact_info="support@ssl.com" 输入 OTP - 按 Enter 继续:455145 批量签名命令已成功执行。签名文件的输出目录:output
进入 DocSignTool batch_sign
如果没有必需的参数,将显示该命令的用法信息。
哈希
- 需要一个 PDF 库来操作 PDF 进行哈希输入,然后将 PKCS#7 嵌入到 PDF 文档中。 (例如 Java 中的 ApachePDFBox)。
- 一个加密库,用于根据从 eSigner API(例如 Java 中的 BouncyCastle)收到的原始签名创建 PKCS#7。
预先计算哈希值供以后使用 batch_hash_sign
命令。 参数 -access_token
和 -input_dir_path
是必要的。 -credential_id
只有拥有多个 eSigner 文档签名证书的用户才需要。 -signing_location
, -signing-reason
, -contact_info
, -sig_field_position
及 -page_no
, 是可选的。
用法: DocSignTool [-hV] hash -access_token=<ACCESS_TOKEN> -input_dir_path=<PATH> [-signing_location=<SIGNING_LOCATION>] [-signing_reason=<SIGNING_REASON>] [-contact_info=<CONTACT_INFO>] [-sig_field_position=<X, Y, WIDTH, HEIGHT>][-page_no=<PAGE_NUMBER>]
可选参数:
- If
-program_name
MSI安装程序签名时出现,则该值将在确认对话框中显示为程序名称。 - If
-signing_location
存在时,指定的位置将在生成时添加到数字签名中。 - If
-signing_reason
存在时,指定的签名原因将在生成时添加到数字签名中。 - If
-contact_info
存在时,指定的文本将在生成时添加到数字签名中。 尽管包含在签名中,但此信息不会包含在可见的签名注释(如果存在)中。 - If
-sig_field_position
存在,一个可见的签名注释将被添加到指定页面上的文档中-page_no
生成签名时。 职位和签名应按以下格式提供"x, y, width, height"
. -page_no
仅在创建可见签名时才需要-sig_field_position
并指定生成可见签名注释时将出现在文档的页面。
示例:
DocSignTool 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 Hash command executed successfully. Hash files created at: input
进入 DocSignTool hash
如果没有必需的参数,将显示该命令的用法信息。
批处理签名哈希
预先计算的签名哈希 hash
命令。 参数 -access_token
, input_dir_path
, -otp
及 output_dir_path
是必要的。 -credential_id
只有拥有多个 eSigner 文档签名证书的用户才需要。
用法: DocSignTool [-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 文档签名证书,DocSignTool 将默认为该证书。 如果用户拥有多个文档签名证书,则此参数是必需的。
示例:
DocSignTool 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
进入 DocSignTool batch_sign_hash
如果没有必需的参数,将显示该命令的用法信息。
如何在沙盒模式下测试DocSignTool
- 在 DocSignTool 版本中,转到
conf
文件夹并打开doc_sign_tool.properties
文件 - 通过添加注释掉现有属性
#
每个属性之前的符号 - 在文件中添加以下属性:
CLIENT_ID
=qOUeZCCzSqgA93acB3LYq6lBNjgZdiOxQc-KayC3UMwOAUTH2_ENDPOINT
=https://oauth-sandbox.ssl.com/oauth2/tokenCSC_API_ENDPOINT
=https://cs-try.ssl.comTSA_URL
=http://ts.ssl.com
- 保存文件。 保存后,DocSignTool现在可以在沙盒模式下使用。
- 要切换回生产模式,请取消注释现有属性并删除沙箱属性。
可选:将 OV 文档签名证书转换为密封证书
请注意: 此部分仅适用于想要进行密封的用户。为了自动进行文档签名并且不被一次性密码 (OTP) 提示,用户可以自行将其组织验证 (OV) 文档签名证书转换为其 SSL.com 帐户上的密封证书。说明如下:
- 点击 订单管理 在您的 SSL.com 帐户的顶部菜单上。
- 找到您的证书并单击 下载/详细信息 链接。
- 点击 删除 2FA 按钮。