我有 3 个 Web 应用程序(api
、app
和admin
),我想用 SSL 保护它们,并且需要证书。我不确定我需要什么证书,所以我会尝试描述我拥有的证书,希望这里有人能提供帮助。
一些细节:
- 全部都是 HTTP 应用程序,一些(
api
)是基于 JSON 的 API,一些(app
和admin
)是基于常规 HTML 的应用程序。 - 目前所有都已部署在 Heroku 中。未来可能会发生变化(如果有影响的话)
- 所有内容都部署了“两次” - prod/stage。意思是- 我在 DNS 中有以下域名:
app.domain.com
,,,,,,api.domain.com
admin.domain.com
app.stage.domain.com
api.stage.doamin.com
admin.stage.domain.com
- 我想强制所有应用程序使用 HTTPS(在 Web 服务器上完成)
- 除了公司名称域名外,我们还拥有品牌名称域名,我想将它们设为别名(在 DNS 级别)。因此,相同的应用程序(使用 HTTPS)应该可以从
app.domain.com
和app.brand1.com
我知道对于所有阶段的应用程序,我基本上都可以使用自签名证书。如果我已经需要多域证书,有什么理由不将其也用于该阶段?
SAN 证书是我所需要的吗?我见过 Digicert Unified Communications 允许一个证书中包含 25 个域(这对我来说已经足够了)。这是我需要的 Web 服务器证书类型吗?(他们只在页面中提到了 Exchange 等通信产品)。
如果我购买了 SAN 证书 - 注册如何进行?我是否“选择”其中一个域作为“主要”FQDN,而其他域只是它的替代品?如果用户访问 brand1.com,他是否知道这是一个替代域?
还有一些其他(某种程度上相关的)问题 - 我需要证书的业务验证。公司名称的域名由公司自己在 whois 中注册,我们有官方文件,所以我想这不会有问题。品牌名称域名也由公司注册(在 whois 中),但我们尚未将其注册为商标或类似的东西。这有什么问题吗?在这种情况下,DigiCert 如何将品牌与公司匹配?
答案1
听起来 SAN 证书对你来说没问题。不过,有几点必须提一下:
- 如果您想将别名 DNS 名称用于二级域名,则需要为这些别名获取新的 SAN 证书。
- 由于上述原因,您将需要对别名使用不同的 IP 地址(即使它们都可以链接到同一个源)。
- 当您使用共享主机时,不同的主机提供商处理证书的程序有所不同。有些非常灵活,允许您使用任何您想提供的证书(当然,只要您还提供相关的私钥);有些会强迫您遵循他们的程序,这使得如果您以后想迁移,检索私钥会变得非常困难(或不可能)。
- 当您注册新的 SAN 时,通常会选择“基本”名称,然后添加所有必要的别名。基本名称是什么并不重要,因为兼容 SAN 的客户端将忽略 Subject.CommonName 字段并仅使用 SAN。
- 最终用户将收到带有连接的 X509 证书并可以检查它。如果他们这样做,他们将看到该证书中的所有 SAN。