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
感谢您的反馈!

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

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

pkgsign 工具在对软件包进行签名时不对其输入执行所有可能检查。所以,检查已签名的软件包以确保它们在签名后可以正确安装是非常重要的。

本节显示了尝试安装或更新已签名软件包时出现的错误,并提供了这些错误的说明和问题的解决方案。

已签名软件包可能会因为已签名软件包的特有原因而安装或更新失败。例如,如果软件包的签名验证失败,或者如果信任链无法验证或固定到信任证书,则软件包将安装失败。

当安装签名的软件包时,下列映像和发布者属性将会影响软件包上执行的检查:

映像属性

发布者属性

有关这些属性及其值的更多信息,请参见 pkg(1) 手册页。

未发现链证书

当信任链中的证书缺失或发生错误时,将会出现以下错误。

pkg install: The certificate which issued this certificate:
/C=US/ST=California/L=Menlo Park/O=pkg5/CN=cs1_ch1_ta3/emailAddress=cs1_ch1_ta3
could not be found. The issuer is:
/C=US/ST=California/L=Menlo Park/O=pkg5/CN=ch1_ta3/emailAddress=ch1_ta3
The package involved is: pkg://test/example_pkg@1.0,5.11-0:20110919T184152Z

在此示例中,当对软件包进行签名时,信任链中有三个证书。信任链源于信任锚(名为 ta3 的证书)。ta3 证书对名为 ch1_ta3 的链证书进行签名,ch1_ta3 对名为 cs1_ch1_ta3 的代码签名证书进行签名。

pkg 命令尝试安装软件包时,能够找到代码签名证书 cs1_ch1_ta3,但是找不到链证书 ch1_ta3,所以无法建立信任链。

该问题最常见的原因是未能向 pkgsign-i 选项提供正确的证书。

未发现授权证书

以下错误与前一示例中显示的错误相似,但原因不同。

pkg install: The certificate which issued this certificate:
/C=US/ST=California/L=Menlo Park/O=pkg5/CN=cs1_cs8_ch1_ta3/emailAddress=cs1_cs8_ch1_ta3
could not be found. The issuer is:
/C=US/ST=California/L=Menlo Park/O=pkg5/CN=cs8_ch1_ta3/emailAddress=cs8_ch1_ta3
The package involved is: pkg://test/example_pkg@1.0,5.11-0:20110919T201101Z

在本例中,使用 cs1_cs8_ch1_ta3 证书对软件包进行签名,该证书则由 cs8_ch1_ta3 证书进行签名。

问题是 cs8_ch1_ta3 证书未被授权对其他证书进行签名。具体来说,cs8_ch1_ta3 证书将 basicConstraints 扩展设置为 CA:false 并标记为关键。

pkg 命令验证信任链时,没有找到允许对 cs1_cs8_ch1_ta3 证书进行签名的证书。因为信任链不能从叶到根进行验证,所以 pkg 命令阻止安装软件包。

不可信的自签名证书

当信任链以系统不信任的自签名证书结尾时,将会出现以下错误。

pkg install: Chain was rooted in an untrusted self-signed certificate.
The package involved is:pkg://test/example_pkg@1.0,5.11-0:20110919T185335Z

当您使用 OpenSSL 创建一个证书链以进行测试时,根证书通常是自签名,因为几乎没有理由让一个外部公司验证只用于测试的证书。

在测试情况下,有两种解决方案:

签名值与预期值不匹配

当无法使用操作声明中与用来为软件包签名的密钥配对的证书来验证 signature 操作中的值时,将出现以下错误。

pkg install: A signature in pkg://test/example_pkg@1.0,5.11-0:20110919T195801Z
could not be verified for this reason:
The signature value did not match the expected value. Res: 0
The signature's hash is 0ce15c572961b7a0413b8390c90b7cac18ee9010

这种错误可能有两种原因:

未知关键扩展

当信任链中的证书使用 pkg 不能理解的关键扩展时,将会出现以下错误。

pkg install: The certificate whose subject is
/C=US/ST=California/L=Menlo Park/O=pkg5/CN=cs2_ch1_ta3/emailAddress=cs2_ch1_ta3
could not be verified because it uses a critical extension that pkg5 cannot
handle yet. Extension name:issuerAltName
Extension value:<EMPTY>

pkg 了解如何处理该关键扩展之前,唯一的解决方案是重新生成证书,而不包含有问题的关键扩展。

未知扩展值

以下错误与前一错误相似,只是问题不是在于不熟悉的关键扩展而是在于一个值,针对 pkg 理解的扩展,pkg 却无法理解该值。

pkg install: The certificate whose subject is
/C=US/ST=California/L=Menlo Park/O=pkg5/CN=cs5_ch1_ta3/emailAddress=cs5_ch1_ta3
could not be verified because it has an extension with a value that pkg(5)
does not understand.
Extension name:keyUsage
Extension value:Encipher Only

在本例中,pkg 理解 keyUsage 扩展,但是不理解 Encipher Only 值。无论有问题的扩展是否关键,错误看起来都一样。

pkg 了解有问题的值之前,解决方案是将该值从扩展中删除,或将扩展全部删除。

未经授权使用证书

当证书用于它未经授权的用途时,将会出现以下错误。

pkg install: The certificate whose subject is
/C=US/ST=California/L=Menlo Park/O=pkg5/CN=ch1_ta3/emailAddress=ch1_ta3
could not be verified because it has been used inappropriately.
The way it is used means that the value for extension keyUsage must include
'DIGITAL SIGNATURE' but the value was 'Certificate Sign, CRL Sign'.

在本例中,ch1_ta3 证书被用来对软件包进行签名。证书的 keyUsage 扩展意味着证书只有在对其他证书和 CRL(Certificate Revocation List,证书吊销列表)进行签名时才是有效的。

非预期的散列值

以下错误表示自上次从发布者检索证书后已对其进行了更改。

pkg install: Certificate
/tmp/ips.test.7149/0/image0/var/pkg/publisher/test/certs/0ce15c572961b7a0413b8390c90b7cac18ee9010
has been modified on disk. Its hash value is not what was expected.

提供的路径处的证书用于验证正在安装的软件包,但是磁盘上内容的散列与签名操作所预期的散列不匹配。

简单解决方案是删除证书并允许 pkg 重新下载证书。

已吊销的证书

以下错误指示处于要安装的软件包的信任链中的有问题证书已被该证书的颁发者吊销。

pkg install: This certificate was revoked:
/C=US/ST=California/L=Menlo Park/O=pkg5/CN=cs1_ch1_ta4/emailAddress=cs1_ch1_ta4
for this reason: None
The package involved is: pkg://test/example_pkg@1.0,5.11-0:20110919T205539Z