在 Windows HyperV 虚拟机上使用 FIPS USB 令牌进行代码签名

更新时间:2025-09-26 来源:ssltrust 作者:TopSSL

自 2023 年 6 月起,所有代码签名证书都将在符合 FIPS 标准的预配置安全 USB 设备上签发。这意味着代码签名证书不再像以前那样,只能从证书供应商或经销商处下载,然后本地安装在构建机器上。

自 2023 年 6 月起,所有代码签名证书都将在符合 FIPS 标准的预配置安全 USB 设备上签发。这意味着代码签名证书不再像以前那样,只能从证书供应商或经销商处下载,然后本地安装在构建机器上。

一旦公司的验证过程成功,USB设备将通过快递运送到该公司供使用。

USB 加密狗将包含证书(可以导出)以及私钥,但是私钥不能从 USB 加密狗中导出,这意味着 USB 加密狗始终需要插入,并且可以访问以进行任何代码签名。

这对在 Microsoft Hyper-V 下运行的虚拟机提出了特殊的挑战。

HyperV 的 USB 直通

那么,当虚拟机上没有物理 USB 端口时,如何在 HyperV 虚拟机上使用 USB 设备呢?
答案是使用 HyperV 服务器上的 USB 端口,然后使用“USB 直通”功能,以便客户端计算机能够看到它。

问题…

通常,这是通过在 HyperV 服务器和虚拟机上启用“增强会话模式”,然后配置远程桌面连接以共享或“直通”驱动器、USB 设备和其他连接的东西来实现的。

HyperV 主机和客户端然后,当通过“删除桌面连接”连接到 HyperV 客户端计算机时,您将使用连接对话框上的**“本地资源”**选项卡,检查您希望虚拟 PC“看到”的相关设备/端口/驱动器等,然后连接。

HyperV 本地资源看起来应该可以……但实际上不行。
尽管进行了这些设置,你的虚拟电脑仍然无法识别 USB 加密狗。
无论你做了什么配置,HyperV 似乎都无法与 USB 加密狗兼容。

解决方案…

解决方案分为两部分:

  1. 连接到虚拟PC的方法和
  2. USB直通过程

连接方法 – 不要使用 Microsoft RDP,而是使用 VNC

无法使用 Microsoft 远程桌面连接 (RDP) 会话连接到虚拟机。同样,您也无法使用“vmconnect”,也无法通过 HyperV 服务器本身使用 HyperV 进行连接。所有这些基于 Microsoft 的连接方法都会阻止对 USB 加密狗的访问,无论您使用何种配置设置。

解决方案是使用其他远程连接方法。

TightVNC可用于连接到 HyperV 客户端,并且不会阻止对 USB 加密狗的访问。在虚拟客户端(服务器模式)上安装 TightVNC,并使用客户端模式进行基于客户端的远程访问。

当您需要查看、使用或配置 USB 加密狗时,需要使用 TightVNC。

允许 USB 直通

可以使用第三方软件实现 USB 直通,以完成 HyperV 无法实现的功能。

www.virtualhere.com是一家以合理的价格提供此软件解决方案的公司,并且有一个允许概念验证的试用模式。

在 HyperV服务器以及 HyperV客户端上下载并安装 VirtualHere 。

在 HyperV 主机上安装VirtualHere Server并运行它。

VirtualHere 服务器在HyperV 客户端上安装VirtualHere Client并运行它。它将显示插入 HyperV 服务器的所有 USB 设备的列表。

右键单击eToken 5510+ FIPS,然后选择“使用此设备”。

eToken 5510+ FIPS您现在应该能够从 Windows 系统托盘中看到 USB 密钥

附加的 USB 令牌弹出令牌## 安装 USB 加密狗驱动程序和软件

一旦 USB 加密狗出现在 HyperV 客户端中,您现在就可以下载并安装用于管理 USB 加密狗的驱动程序和软件。
https://knowledge.digicert.com/solution/how-to-install-the-safenet-drivers-and-client-software-windows.html

安装驱动程序后,您必须安装 Windows DigiCert 硬件证书安装程序。
https://www.digicert.com/StaticFiles/DigiCertHardwareCertificateInstaller.zip

DigiCert 有此指南可供您遵循(从步骤 6-7 开始):
https://knowledge.digicert.com/solution/e-token-setup-and-certification-installation.html

配置 USB 加密狗以实现无人值守访问

配置 USB 加密狗并包含代码签名证书后,请使用 SafeNet 身份验证客户端软件进行配置,以便每次签名文件时都无需输入密码。
使用**“客户端设置”>“高级”选项卡**

  • 选中“启用单点登录”复选框和“启用 PKCS#11 单点登录”复选框。
  • 在“令牌不活动后自动注销(分钟) ”下拉框中选择“从不”。

将证书导出到本地机器

ssl导出到本地计算机以供使用。
打开 SafeNet 身份验证客户端并点击证书。使用工具栏中的“导出”选项将证书导出为 .cer 文件。
将其保存到磁盘的某个位置。该文件将在代码签名过程中使用。

出口证书## 复制证书详细信息以供 Microsoft SignTool.exe 使用

为了使用代码签名证书对文件进行签名,您需要从证书中提取一些信息。这些信息将用作签名过程中的参数。复制加密提供程序
的名称。它应该是:eToken Base Cryptographic Provider。复制容器名称。它的格式为 p11#xxxxxxxxxxxxxxxxx。

容器名称## 签名文件

使用 Microsoft SignTool 对文件进行数字签名。使用代码签名证书中的参数为签名工具构建命令行。
示例命令行

signtool.exe 签名 /v /d ContentDescriptionGoesHere /du DescriptionURLGoesHere /fd sha256 /tr http://timestamp.digicert.com /td sha256 /f "C:\Certificate Location\CodeSigning Cert.cer" /p TopSecretPasswordGoesHere /csp "eToken Base Cryptographic Provider" /kc ContainerNameGoesHere "c:\Files\FileToSign.dll"

请参阅此处的 Microsoft SignTool 文档:
https://learn.microsoft.com/en-us/windows/win32/seccrypto/signtool

标签

有用
分享
无用
反馈
返回顶部
0 个回答
63 次浏览
立即加入,帮您快速选购适合您的SSL数字证书 申请SSL证书
免费SSL证书 - 专业SSL证书申请 - HTTPS加密【TopSSL】
免费SSL证书永久生成
微信公众号二维码 扫一扫在线咨询
关注 TopSSL 公众号, RSS订阅 SSL资讯与技术支持

2004-2025 © 北京传诚信  版权所有 | TopSSL提供免费SSL证书SSL证书申请轻松实现HTTPS加密! 北京市朝阳区鹏景阁大厦16层

技术协助:wo@topssl.cn 企业咨询:vip@topssl.cn