使用 eSigner 对 Nuget 包进行代码签名

NuGet 包是一种标准化格式,用于在 .NET 生态系统中分发软件库、工具和资产。 它允许开发人员轻松地跨不同项目和平台共享和使用代码。
 
NuGet 是 .NET 开发框架的包管理器,主要与 Microsoft 的 Visual Studio 和 .NET Core 一起使用。 它通过提供可以轻松安装和更新的集中包存储库,简化了管理项目中外部依赖项的过程。
 
开发人员可以使用 NuGet 从官方 NuGet Gallery 或其他自定义包源搜索包。 一旦识别出包,就可以将其安装到项目中,项目会自动解析并下载任何所需的依赖项。
 
通过利用 NuGet 包,开发人员可以利用现有代码和功能来节省时间,而不是为常见任务重新发明轮子。 它促进代码重用、模块化开发,并简化 .NET 项目中外部库和依赖项的管理。
 
SSL.com 的 eSigner CodeSignTool 是一种安全、面向隐私的多平台 Java 命令行实用程序,用于使用 eSigner 注册的代码签名证书对 Microsoft Authenticode 和 Java 代码对象进行远程签名。 它能够以用户友好的方式高效地签署 Nuget 包。
 

SSL.com 的 EV 代码签名证书 在全球范围内受到信任,可以对软件代码进行数字签名 带有安全数字签名。 

购买您的 SSL.COM EV 代码签名证书

 

订购代码签名证书

生产证书

有关如何订购生产代码签名证书的说明,请参阅指南文章: 代码和文档签名证书的订购流程.

测试证书

对于想要尝试使用测试证书进行代码签名的用户来说,SSL.com 沙箱环境提供了一个可以自由实验的地方。 请按照以下步骤订购 SSL.com 测试证书。
  1. 登录您的沙盒帐户 https://sandbox.ssl.com/login。 如果还没有沙盒帐户,可以在以下位置创建一个新帐户: https://sandbox.ssl.com/users/new.
  2. 登录沙盒帐户后,单击 仪表板选项卡.
  3. 向下滚动到 开发人员与整合 部分并点击 开发者工具 链接。
  4. 选择您要订购的测试 EV 证书。 指定证书的有效期。 最后,单击 创建测试订单 按钮。
  5. 联系 SSL.com 支持团队(support@ssl.com)以验证测试代码签名证书。

在 eSigner 云代码签名中注册您的证书

您的证书经过验证后,您现在可以将其注册到 eSigner 中。请参阅本指南: 注册 eSigner 进行远程文档和代码签名.

安装 eSigner CodeSignTool

请参阅 本文 下载并了解 CodeSignTool 中所有可用命令的概述。

使用 eSigner 云密钥适配器 (CKA) 签署您的 NuGet 包

eSigner CKA(云密钥适配器) 是基于 Windows 的应用程序,它使用加密 API:下一代接口(KSP 密钥服务提供商),允许 certutil.exe 和 Signtool.exe 等工具使用符合 eSigner 云签名联盟 (CSC) 的 API 进行企业代码签名操作。它的作用类似于虚拟 USB 令牌,并将代码签名证书加载到证书存储中。
  1. 请参阅 本文 知道如何安装 电子签名者 CKA 在你的电脑上
  2. 使用您的 SSL.com 帐户凭据登录 eSigner CKA。
  3. 使用 sIGN 使用下面的命令对您的 NuGet 文件进行签名 Windows签名工具

    dotnet nuget sign "D:\Data\unsigned.nupkg" --timestamper http://ts.ssl.com/legacy --certificate-fingerprint YOUR CERTIFICATE THUMBPRINT --certificate-store-location CurrentUser --certificate-store-name My

使用 eSigner CodeSignTool 签署您的 NuGet 包

SSL.com 的 eSigner CodeSignTool 是一种安全、面向隐私的多平台 Java 命令行实用程序,用于使用 eSigner 注册的代码签名证书对 Microsoft Authenticode 和 Java 代码对象进行远程签名。 它能够以用户友好的方式高效地签署 Nuget 包。 参考文章 eSigner CodeSignTool命令指南 下载应用程序并获得所有可用命令的概述。
  1. 为了能够使用 CodeSignTool 对 Nuget 文件进行签名,首先您必须在 属性源文件 CodeSignTool 的。 打开 CodeSignTool 文件夹 > 打开 CONF 子文件夹 > 打开 代码签名工具 属性源文件。 添加旧端点: TSA_LEGACY_URL=http://ts.ssl.com/legacy

    如果使用的是测试证书,还需要替换以下内容 conf/code_sign_tool.properties 带有以下文字:
    CLIENT_ID=qOUeZCCzSqgA93acB3LYq6lBNjgZdiOxQc-KayC3UMw OAUTH2_ENDPOINT=https://oauth-sandbox.ssl.com/oauth2/token CSC_API_ENDPOINT=https://cs-try.ssl.com TSA_URL=http://ts.ssl.com
  2. 打开命令行工具并使用以下命令将目录更改为指向 CodeSignTool 的安装文件夹 cd 命令。 例子: C:\Users\Admin>cd C:\Users\Admin\My PC\Desktop\CodeSignTool
  3. 使用此命令对您的 Nuget 文件进行签名:
    CodeSignTool sign -username=USERNAME -password=PASSWORD -credential_id=CREDENTIAL ID -input_file_path=INPUT FILE PATH -output_dir_path=OUTPUT DIRECTORY PATH
  4. 输入签名命令后,您的命令行工具将提示您输入一次性密码 (OTP),该密码链接到您用于在 eSigner 中注册证书的工具:二维码应用程序或短信/手机: Enter the OTP - Press enter to continue: 
  5. 代码签名成功! 您将收到通知,您的 Nuget 文件已成功签名。 例子:
    Code signed successfully: C:\Users\Admin\\My PC\Desktop\Signed Nuget Files\sample.nupkg

所需参数

  • -credential_id=<CREDENTIAL_ID>:用于签署证书的凭据 ID。
  • -input_file_path=<PATH>:要签名的代码对象的路径。
  • -otp=<OTP>:来自身份验证应用程序的 OAuth OTP 值。
  • -output_dir_path=<PATH>:将写入签名代码对象的目录。
  • -password=<PASSWORD>:SSL.com 帐户密码。
  • -username=<USERNAME>: SSL.com 账户用户名

解决签名错误

  1. 如果您的密码包含特殊字符,请将其括在引号中(例如 -password=”P!@^^ssword12″)。
  2. 如果您遇到类似以下的签名错误:
    • 'C:\Users\Admin\Dropbox\My' is not recognized as an internal or external command, operable program or batch file.
    • The system cannot find the path specified.
    • WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
    • \Documents\sample was unexpected at this time.
尝试以下方法:
    • 将输入文件路径和输出目录路径用引号引起来。
    • 在命令行工具上键入或直接复制+粘贴所需的参数。 避免从其他文本编辑器键入和复制粘贴命令。

SSL.com 的 EV 代码签名证书 在全球范围内受到信任,可以对软件代码进行数字签名 带有安全数字签名。 

购买您的 SSL.COM EV 代码签名证书

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

订阅 SSL.com 的时事通讯

不要错过SSL.com上的新文章和更新

保持信息灵通和安全

SSL.com 是网络安全领域的全球领导者, PKI 和数字证书。注册以接收最新的行业新闻、提示和产品公告 SSL.com.

我们希望收到您的反馈

参加我们的调查,让我们知道您对最近购买的想法。