我应该将自签名证书提交给源代码管理吗?

Ant*_*ean 5 security version-control certificate

假设我们为每个客户生成一个自签名证书。它们用于打包/部署管道的某些部分,并最终出现在客户的本地计算机上。它们用于连接到我们的网络服务。

我们应该将这些证书提交给源代码管理吗?该存储库是私有的,只有同事可以访问。我是否应该出于某种安全原因将它们排除在外(即使这只是限制意外暴露的访问,更不用说恶意活动了)?

如果我们将它们排除在外,我们是否应该每次都将它们生成为打包/部署管道的一部分?或者将它们保存在某个安全的密钥库中并检索它们?

小智 1

这是一种信任和暴露的情况。您信任那些有权访问存储库的人吗?请记住,大多数妥协来自内部人士。

我的想法是这样的:

  • 根本不存储已部署的证书。为这些终端系统生成它们。通过根证书对它们进行签名。
  • 将您的产品配置为信任由该根签名的证书建立的连接。这样,如果您的根受到威胁,您可以批量撤销证书,或者根据需要有选择地撤销端点证书,而无需撤销所有内容。
  • 您可以让您的产品使用任何公共标识符引用系统证书存储中的证书,但不存储私钥。
  • 使私钥可用应该是最后的部署步骤,并且可见性尽可能低。使其可供两个或三个用户使用,并使用平台的证书管理机制将公共证书与私钥绑定。