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

标签 security version-control certificate

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

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

如果我们将它们排除在外,我们是否应该每次都将它们作为打包/部署管道的一部分生成?还是将它们放在某个安全的 keystore 中并检索它们?

最佳答案

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

我的想法是这样的:

  • 根本不存储部署的证书。为这些终端系统生成它们。通过根证书对其进行签名。
  • 将您的产品配置为信任由该根签名的证书建立的连接。这样,如果您的根目录受到威胁,您就可以大量撤销证书,或者根据需要选择性地撤销端点证书,而无需撤销所有内容。
  • 您可以让您的产品使用任何公共(public)标识符从系统的证书存储中引用证书,但不要存储私钥。
  • 使私钥可用应该是最后的部署步骤,并尽可能地降低可见性。将其提供给两个或三个用户,并使用平台的证书管理机制将公共(public)证书与私钥绑定(bind)。
  • 关于security - 我应该将自签名证书提交给源代码管理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25366179/

    相关文章:

    linux - 如何使用 ssh 创建存储库 ://access on a server

    version-control - 为什么分布式源代码控制被认为更难?

    java - 使用 Keytool 将 EKU 添加到 CSR?

    powershell - 如何使用powershell导入证书

    spring - 如何避免在 requestMapping 方法中使用实体造成的漏洞?

    ios - 应用程序级别的 iOS 加密

    security - 为什么 mDNS(Bonjour、Avahi 等)使用 UDP?

    android - 加密 SQLite 数据库

    windows - 如何在 VisualSVN 中设置提交后电子邮件

    java - 如何从 "Credential storage"加载证书?