我刚问了这个问题
已立即得到答复(谢谢!)。
除此之外,我有以下问题:
- 可以在源代码控制中使用我的自生成和自签名证书吗?
一般来说,我知道密码等不应该在源代码管理中。但是由于这些证书仅用于开发和测试,我认为不会有问题吗?
问题是我们使用代码进行部署,并且我无法运行脚本来复制周围的东西......因此我看到部署开发证书的唯一方法是将它们置于源代码控制中(我需要弄清楚虽然如何为生产做,但这是一个不同的问题)。
我刚问了这个问题
已立即得到答复(谢谢!)。
除此之外,我有以下问题:
一般来说,我知道密码等不应该在源代码管理中。但是由于这些证书仅用于开发和测试,我认为不会有问题吗?
问题是我们使用代码进行部署,并且我无法运行脚本来复制周围的东西......因此我看到部署开发证书的唯一方法是将它们置于源代码控制中(我需要弄清楚虽然如何为生产做,但这是一个不同的问题)。
秘密——私钥和密码之类的——不应该存储在源代码控制中。在可能的情况下,自签名证书也应替换为集中签名证书。
诸如Vault之类的软件有助于秘密的分发,最重要的是它们的滚动。
通过这种方式,您可以设置您的开发机器,使其具有一定程度的控制,并远离源代码控制中秘密的坏习惯,因为即使它们是自签名证书,它们仍然是一个坏习惯。本来应该是低价值的东西或安全的不重要的东西往往在后来变得重要并被遗忘。
正确设置并保持正确。
如果您只是在谈论证书,则没有加密理由不将其置于源代码控制之下,因为证书旨在公开。您仍然应该确保不会泄漏证书元数据中的任何专有信息,例如特权实体的 X.509 名称。
如果您考虑将密钥也存储在存储库中,就像存储密码一样。因此,实际上您在有权访问存储库或工作副本的所有用户之间创建了一个共享“帐户”,因此共享帐户的所有问题都适用。安全隐患取决于密钥的拥有者可以做什么。如果该证书允许登录某些生产系统,那么您就注定要失败,而在另一个极端,如果密钥和证书的唯一用途是测试您的产品,并且在其他任何地方都不接受,则不会造成任何伤害。在后一种情况下,您可以考虑在动态测试期间生成证书。使用固定的测试证书/密钥和动态生成它们都有有效的点,但这个讨论不再与 IT 安全相关,
根据经验,在投资购买证书之前,为您的本地计算机地址拥有自签名证书以测试 TLS/SSL 是很常见的。如果您正在谈论网站连接,则必须手动将证书插入您将用于测试网站的浏览器中。
如果您的服务器私钥可供公众访问,我仍然不会将其发布到源代码控制中,但只要证书私钥与正在部署的私钥不同,我认为生成新的自签名证书不会有太大危害简单的程序。