JavaScript is required to for searching.
跳过导航链接
退出打印视图
在 Oracle Solaris 11.1 中使用映像包管理系统打包和交付软件     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

1.  IPS 设计目标、概念和术语

2.  使用 IPS 打包软件

3.  安装、删除和更新软件包

4.  指定软件包相关项

5.  允许变量

6.  以编程方式修改软件包清单

7.  在软件包安装过程中自动进行系统更改

8.  有关软件包更新的高级主题

9.  对 IPS 软件包进行签名

对软件包清单进行签名

定义签名操作

发布已签名的软件包清单

对已签名的软件包进行故障排除

未发现链证书

未发现授权证书

不可信的自签名证书

签名值与预期值不匹配

未知关键扩展

未知扩展值

未经授权使用证书

非预期的散列值

已吊销的证书

10.  处理非全局区域

11.  修改已发布的软件包

A.  对软件包进行分类

B.  如何使用 IPS 打包 Oracle Solaris OS

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

对软件包清单进行签名

可以对 IPS 软件包清单进行签名,签名将成为清单的一部分。

定义签名操作

与其他所有清单内容一样,签名也表示为操作。由于清单包含所有软件包元数据(例如文件权限、所有权和内容散列),用于验证清单自发布后尚未更改的签名操作是系统验证的重要部分。

signature 操作形成一个包含已交付的二进制文件的树,从而使对已安装软件进行完整验证成为可能。

除了验证以外,签名也可以用来表示其他组织或第三方的批准。例如,一旦软件包符合产品使用的要求,内部 QA 组织就可以对软件包的清单进行签名。安装过程中可能需要这些批准。

一个清单可以有多个独立签名。可以添加或删除签名,而不会使存在的其他签名失效。此功能便于产品移交,使用签名来表示各个环节的完成。后续步骤可以随时选择删除以前的签名。

signature 操作使用以下格式:

signature hash_of_certificate algorithm=signature_algorithm \
    value=signature_value \
    chain="hashes_of_certificates_needed_to_validate_primary_certificate" \
    version=pkg_version_of_signature

有效负荷和 chain 属性表示保密性增强的电子邮件 (Privacy Enhanced Mail, PEM) 文件的包管理散列,包含可从原始系统信息库检索的 x.509 证书。有效负荷证书是用于验证 value 中的值的证书。value 是清单的消息文本的已签名散列,按照下面的讨论进行准备。

出现的其他证书需要形成从有效负荷证书到信任锚的证书路径。

支持两种类型的签名算法:

RSA

第一种签名算法是 RSA 算法组。RSA 签名算法的一个示例是 rsa-sha256。连字符后的字符串(此示例中的 sha256)指定用来将消息文本更改为 RSA 算法可以使用的单值的散列算法。

仅散列

第二种签名算法是仅计算散列。这种算法主要用于测试和过程验证目的,并将散列呈现为签名值。如果没有有效负荷证书散列,则说明使用了这种签名操作。如果映像配置为检查签名,将验证这种签名操作。然而,如果要求签名,此签名操作不能算作签名。以下示例显示了仅散列签名操作:

signature algorithm=hash_algorithm value=hash \
    version=pkg_version_of_signature

发布已签名的软件包清单

发布已签名的清单是包含两个步骤的过程。该过程不改变软件包,包括它的时间戳。

  1. 将未签名的软件包发布至系统信息库。

  2. 更新准备就绪的软件包,使用 pkgsign 命令将签名操作附加到系统信息库的清单中。

该过程允许除发布者之外的其他人添加签名操作而不使原始发布者的签名失效。例如,公司的 QA 部门可能想要对所有内部安装的软件包进行签名,来表示它们已被批准使用,但是不重新发布软件包,因为重新发布将会创建一个新的时间戳,使原始发布者的签名失效。

请注意,发布已签名软件包的唯一方法是使用 pkgsign 命令。如果发布的软件包已经包含签名,则系统将删除该签名并发出警告。pkgsign(1) 手册页包含如何使用 pkgsign 命令的示例。

包含变量的签名操作将被忽略。所以,对两个清单执行 pkgmerge 会使之前应用的所有签名失效。


注 - 对软件包进行签名应该是测试软件包之前软件包开发的最后一步。