[注意:我粘贴此文件的文档中有图像,但它们不会粘贴在这里。]我能够通过变通方法蒙混过关。解决方法涉及从 VMWare (ovftool.exe) 获取一个工具,这似乎有点奇怪。它允许导入 OVA,显示证书并将其标记为“安全”。它仍然有几个问题。一个是在创建签名文件时发出令人讨厌的警告消息,我无法找到解决方法。另一个是它似乎没有联系时间服务器来为文件添加时间戳。大概这意味着当签名证书过期时,加载时会再次收到警告。
我仍然想知道您应该如何根据 Oracle 正确执行此操作。当然,甲骨文并没有使用 VMWare 的软件来签署他们的虚拟设备。
这是我在 Windows 10 下的旅程。最后,我有一个可发布的设备。
要获取 .ova 文件,您需要将其中一个 VM 导出为虚拟设备:
打开导出虚拟设备对话框:
文件->导出设备 [或者 E]
选择要导出的虚拟机。填写适用的任何虚拟系统设置。
对于设备设置,将格式设置为打开虚拟化格式 1.0
确保选中“写入清单文件”复选框。
点击按钮写入文件。
您应该在证书存储中安装了签名证书。如果您还没有这个,您需要咨询您的证书提供商。
要获得可用形式的签名证书,您必须跳过几个环节才能获得老式的隐私增强邮件 (PEM) 文件。
您需要先将证书放入文件中。
通过运行 certmgr.msc 启动证书管理器
打开 Personal->Certificates 并右键单击您的签名证书
打开所有任务菜单并选择导出
这应该会打开证书导出向导
点击下一步]
选择标有“是,导出私钥”的单选按钮
点击下一步]
选择“个人信息交换 - PKCS (.PFX)”
选中“如果可能,在证书路径中包含所有证书”
勾选“导出所有扩展属性”
勾选“启用证书隐私”
点击下一步]
选中密码复选框,输入并确认密码[在本例中使用密码“IMPPass”]
将加密下拉菜单更改为 AES256-SHA256
点击下一步]
为导出的证书分配文件名和路径。在此示例中,我将其称为“MyCert”。请注意,您不要在此处将文件扩展名放在名称上。证书导出向导会在写入文件时添加它。您应该将其保存在保存 OVA 文件的路径中。
点击下一步]
查看设置并单击
它应该会弹出一个消息框,说明导出成功。通过单击按钮将其关闭。
您需要在命令行中执行后续步骤。
打开一个控制台窗口。
切换到保存 OVA 和 PFX 文件的目录。
cd c:<你的保存位置>
您现在需要将证书转换为可以使用的形式 (.pem)。为此,您需要使用 OpenSSL。下面是命令的形式:
openssl pkcs12 -in MyCert.pfx -out MyCert.pem
响应导入密码和 PEM 密码短语的提示:
Enter Import Password: IMPPass
Enter PEM pass phrase: PEMPass
Verifying - Enter PEM pass phrase: PEMPass
最后,您可以使用 ovftool 使用如下命令对导出的 OVA 进行签名:
ovftool --privateKey=MyCert.pem --shaAlgorithm=SHA1 DamnSmall.ova DSL.ova
打开 OVA 来源:DamnSmall.ova
打开 OVA 目标:DSL.ova
编写OVA包:DSL.ova
转移完成
清单验证
输入 MyCert.pem 的密码:PEMPass
此处发出警告,但不会干扰签名。
警告:
- 找不到支持的清单(sha1、sha256、sha512)条目:“DamnSmall-disk001.vmdk”。成功完成
此时,应该有一个名为 DSL.ova 的签名文件。在 VirtualBox 中导入时会显示。
要进行测试,请导入新创建和签名的 OVA 文件。打开导入对话框:
文件-> 导入设备,或者我
输入已签名虚拟设备的路径和名称。点击下一步]
设备设置对话框的左下角应该有文本,表明您已经签署了设备并且它是受信任的。
设备已签名