【问题标题】:Sign RPM and DEB packages with SSL certificate使用 SSL 证书签署 RPM 和 DEB 包
【发布时间】:2015-12-19 14:57:05
【问题描述】:

我是 SSL 证书和 RPM 构建的新手。我已购买 SSL 证书。我有兴趣可以使用此证书签署 RPM 包和 DEB 包吗?或者这是不可能的?

【问题讨论】:

    标签: ssl rpm rpmbuild deb rpm-spec


    【解决方案1】:

    只是为了跟进 Etan Reisner 所说的:您不能使用 SSL 证书签署 deb 包。 deb 和 RPM 包都使用 GPG 密钥签名,尽管在 Ubuntu/Debian 上默认禁用包的签名验证。

    但是,您可以对 YUM 包存储库本身进行签名(如果您决定生成一个存储库),同样您也可以对 APT 包存储库本身进行签名。但是,当您这样做时,您也必须为此使用 GPG 密钥。

    Ubuntu 和 Debian 将验证 APT 存储库的签名 -- 因此,如果可以的话,您应该考虑对存储库进行签名。

    我写了一篇关于 signing and verifying RPM packages and YUM repositories with GPG 的博客文章和一篇关于 signing and verifying deb packages and APT repositories with GPG 的单独文章。这些博客文章包含您需要了解的有关 GPG 签名包的所有信息,并逐步解释了您需要执行哪些操作才能完成所有设置和工作。

    【讨论】:

    • 我相信验证 yum 的 repo 元数据,而不是包签名,默认情况下是禁用的,至少在 RedHat/CentOS 6 和大概相关的 Fedora 版本之前是禁用的。我不知道除此之外,尽管快速浏览一下使它看起来在 RedHat/CentOS 7 中也被禁用了。您可能还想明确(在答案中)GPG 也用于存储库签名。这可能被解读为意味着您可以使用 SSL 证书。
    • 默认情况下两者都被禁用,并且来自 CentOS 5 的包的签名验证是非常错误的。我更新了我的答案,以明确表示要签署存储库元数据,您必须使用 GPG 密钥。
    • CentOS 5 上的 pygpgme 混乱肯定是个问题,但除此之外,我不知道它实际上是有问题的(子键有问题,但这不是 CentOS 5 问题)。存储库元数据签名使用完全不同的密钥环/密钥集验证,而不是验证包元数据,这一事实令人讨厌。
    • 在 CentOS5 上签名包确实有问题,pygpgme 除外。签名的软件包没有:(1) 指定 gpg v3 签名的自定义 .rpmmacros 文件,并且没有 (2) 2048 位 RSA 密钥和 (3) 没有子密钥,签名后将无法立即验证。这是一团糟。
    • on CentOS 5 上签名时无需指定 v3 签名。如果您为 for CentOS 签名,则在 CentOS 6 上签名时需要指定5虽然。 (这不是签名被破坏的问题。)不,其他大小的密钥工作得很好(我测试了它们,如果你愿意,可以提供框架,也可以使用 1024 位 RSA 密钥对 vmware 签名/签名包,它们验证正确)。是的,子键不起作用,据我所知,虽然我相信它们在 CentOS 6 及更高版本中被破坏得不那么可怕。
    【解决方案2】:

    我不知道.deb 包(尽管我怀疑它是相似的),但是你不能用 SSL 证书签署 RPM 包(而且你的证书可能对签署软件/等无效。无论如何你会必须检查)。

    RPM 签名基于 GPG/PGP。

    【讨论】:

      猜你喜欢
      • 2019-04-11
      • 2013-04-08
      • 2014-12-30
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 2022-07-06
      相关资源
      最近更新 更多