繁体   English   中英

Firebase Hosting 生成的 SSL 证书不包括连接的域

[英]SSL certificate generated by Firebase Hosting does not include connected domain

我们在上周遇到了两次这个问题。 对于具有两个连接域的 Firebase 托管项目,证书中不包含一个域。

尝试与浏览器连接似乎返回 503 状态代码,Chrome 在控制台中显示net::ERR_CERT_COMMON_NAME_INVALID curl返回

(51) SSL:没有替代证书主题名称与目标主机名“{host}”匹配

(其中{host}是主机名/连接的域)

要直接检查证书,即SAN ,我使用以下命令:

gnutls-cli --print-cert ${host} < /dev/null \
    | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' \
    | openssl x509 -noout -text \
    | grep DNS | tr , '\n' | tr -s " "

这将返回 100 个证书的列表,包括工作域的主机名,但仅返回失败域的默认 firebaseapp.com/*.firebaseapp.com 条目。

注意:我在这里使用gnutls-cli ,因为openssl s_client -connect ${host}:443似乎没有在请求中包含主机名,并且总是为 firebaseapp.com/*.firebaseapp.com 加载证书

我已经联系了 Firebase 支持,但他们的最后回复(大约 16 小时前)是“有两个不同的域与同一个项目相关联,但我需要确认这是否受支持”。 我很确定这是支持的,因为在我对问题的分析期间,我发现了 400 多个 SAN 用于我们负责的域旁边的相同的两个主机名。

关于我们如何解决这个问题的任何建议? 我已经尝试删除并重新添加自定义域,但这并没有改变任何东西。

切换托管在技术上不会太困难,但我们的主要问题是 DNS 由我们客户的服务提供商控制,他们很难更改已经在生产中的任何内容。

在与 Firebase 支持人员反复交流后,他们发现根域包含一个不包含letsencrypt.orgCAA 记录

在我们的特定情况下,修复方法是仅包括让我们为子域加密。 例如,使用以下设置

  • 域名: awesomesite.com
  • 连接域: firebaseapp.awesomesite.com

我们可以使用 dig 查询记录:

$ dig CAA awesomesite.com +noall +answer && dig CAA firebaseapp.awesomesite.com +noall +answer             

; <<>> (...) <<>> CAA awesomesite.com +noall +answer
;; global options: +cmd
awesomesite.com.        299 IN  CAA 0 iodef "mailto:cert@awesomesite.com"
awesomesite.com.        299 IN  CAA 0 issue "digicert.com"

; <<>> (...) <<>> CAA firebaseapp.awesomesite.com +noall +answer
;; global options: +cmd
firebaseapp.awesomesite.com.    3599    IN  CAA 0 issue "letsencrypt.org"

正如你所看到的,所访问的firebaseapp.awesomesite.comletsencrypt.org一个CAA纪录,而awesomesite.com并没有被感动。

现在一切正常,更新记录后不久。 我们不必在 Firebase 托管上重新触发部署或删除/添加连接的域(我以前尝试解决问题的方法)。

解决问题的替代方法:

  • 删除 CAA 记录:从根域(或中间域)中删除 CAA 记录
  • 扩展 CAA 记录:在根域的 CAA 记录中的域列表中包含letsencrypt.org

2020 年 9 月更新:根据我收到的一封电子邮件,由于Let's Encrypt 过渡到 ISRG 的 Root可能会破坏向后兼容性,因此 Google 正在将 SSL 证书提供商迁移到新的 Google 运行的 CA。 根据该电子邮件,需要使用pki.goog的附加 CAA:

firebaseapp.awesomesite.com.    3599    IN  CAA 0 issue "pki.goog"
firebaseapp.awesomesite.com.    3599    IN  CAA 0 issue "letsencrypt.org"

对于您的自定义域,如果您的 DNS 记录具有指向其他提供商的 A 记录或 CNAME 记录,则 Firebase 无法配置 SSL 证书。

https://support.google.com/firebase/answer/9137747?hl=en

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM