如果要安装签名的软件包,请设置本节所述的映像属性和发布者属性以验证软件包签名。
配置以下映像属性以使用签名的软件包。
该属性的值决定了在映像中安装、更新、修改或验证软件包时将对清单执行的检查。应用于软件包的最终策略取决于映像策略和发布者策略的组合。该策略组合的严格程度至少相当于这两个策略单独执行时较严格的那一个。缺省情况下,软件包客户机不检查证书是否已撤销。要启用这些检查(可能需要客户机访问外部 Web 站点),请将 check-certificate-revocation 映像属性设置为 true。允许使用以下值:
忽略所有清单的签名。
验证所有具有签名的清单的签名是否有效,但不要求对所有已安装的软件包进行签名。
这是缺省值。
要求所有新安装的软件包至少具有一个有效签名。如果安装的软件包不具备有效签名,pkg fix 和 pkg verify 命令也会发出警告。
与 require-signatures 遵循相同的要求,但还要求 signature-required-names 映像属性中列出的字符串显示为用于验证签名信任链的证书的通用名称。
此属性的值是在验证软件包签名时必须视为证书通用名称的名称列表。
配置以下发布者属性以使用来自特定发布者的签名的软件包。
除了仅适用于来自指定发布者的软件包外,此属性的功能与 signature-policy 映像属性的功能相同。
除了仅适用于来自指定发布者的软件包外,此属性的功能与 signature-required-names 映像属性的功能相同。
可使用 set-property、add-property-value、remove-property-value 和 unset-property 子命令配置软件包签名属性。
可使用 set-publisher 子命令的 --set-property、--add-property-value、--remove-property-value 和 --unset-property 选项指定特定发布者的签名策略和必需名称。
以下示例将该映像配置为要求所有软件包都签名。该示例还要求将字符串 "oracle.com" 视为信任链中某个证书的通用名称。
$ pkg set-property signature-policy require-names oracle.com
以下示例将该映像配置为要求所有已签名软件包都进行验证。
$ pkg set-property signature-policy verify
以下示例将该映像配置为要求从发布者 example.com 安装的所有软件包必须签名。
$ pkg set-publisher --set-property signature-policy=require-signatures example.com
以下示例添加必需的签名。此示例将字符串 trustedname 添加到映像的通用名称列表中,这些通用名称必须显示在签名的信任链中才能视为有效。
$ pkg add-property-value signature-required-names trustedname
以下示例删除必需的签名。此示例从映像的通用名称列表中删除字符串 trustedname,这些通用名称必须显示在签名的信任链中才能视为有效。
$ pkg remove-property-value signature-required-names trustedname
以下示例为指定的发布者添加必需的签名。此示例将字符串 trustedname 添加到 example.com 发布者的通用名称列表中,这些通用名称必须显示在签名的信任链中才能视为有效。
$ pkg set-publisher --add-property-value \ signature-required-names=trustedname example.com