通配符 X.509 证书——它们在开发环境中有意义吗

Wildcard X.509 Certificates -- Do they make sense in development environments

我刚开始为一家新公司工作。他们是一家主要专注于硬件的工程公司。他们在大数据 dev/test 环境方面没有太多经验。公司拥有广泛的 IT 安全政策。其中之一是 "absolutely no wildcard certificates"。我曾在其他软件商店工作过,在这些软件商店中,通配符证书通常用于开发和测试环境。优点是可以启动服务器并使用通配符证书,而无需等待会计部门向 CA 发出采购订单。我相信我了解通配符的所有安全问题,

  1. 如果一个子域被破坏,则所有子域都被破坏。
  2. 如果您吊销证书,所有子域都将被吊销。
  3. 通配符在 "really old" 浏览器和服务器上可能不兼容。
  4. 在多个服务器上浮动的单个私钥会带来安全风险。
  5. 一些 CA 对通配符证书的保证无效。

我可能不会对生产服务器使用通配符——主要是因为#4。但是,我看不出上述安全问题是开发和测试环境的问题。开发和测试服务器具有面向互联网的端口。它们都有常用的密码和内置的多因素安全性。仅公开必要的端口,并且全部为 https。数据都是测试的,所有服务器都在自己的域中,没有连接到公司内部域。

有没有人看到任何潜在的安全问题或我可能遗漏的其他问题?

我开始认为通配符 X.509 证书是适合中型到大型 server/instance 开发环境的方式。然而,AlexP 的建议很有帮助,我相信这是一种更好的方法来处理多个环境和 X.509 证书的分发和管理。以下是对他的建议的描述。

您必须支持多种环境。每个环境都有多个服务器或实例。每个 server/instance 都需要自己的 X.509 证书。

  DEV1, DEV2, ...  Development environment
  TEST1, TEST2,... Test environment
  STG1, STG2,...   Production staging and test
  PROD1, PROD2,... Production Live environment

推荐的方法是构建私有 SSL 证书颁发机构 (CA)。私有 CA 将为 DEV、TEST 和 STG 颁发 X.509 证书。任何开发或测试机器浏览器都将手动加载您的私有 CA 的根证书。这样浏览器就不会抱怨证书安全问题。每个服务器或实例都将拥有自己唯一的证书。可以想象,每个环境都可以有多个服务器或实例,因此您可以轻松地部署和管理数十个证书。使用子域或完全限定域名 (fqdn) 也很有帮助——DEV1.admin.mydomain.com、DEV1.rest.mydomain.com、TEST1.admin.mydomain.com、...等。您将需要使用 fqdn 作为每个证书的通用名称——例如 STG1.mongodb.mydomain.com。对于生产环境,您可以使用商业 CA,例如 Comodo、Symantec 或其他。此环境的 fqdn 为 mydomain.com、rest.mydomain.com 等。私有 CA 证书免费、易于创建且部署速度快。商业证书可能很昂贵并且需要更多时间来创建和部署,但这是必要的。私有 CA 在中型到大型开发环境中代表了良好的成本、安全性和证书管理便利性权衡。