Firebase身份验证-自定义的重定向域会提示NET :: ERR_CERT_COMMON_NAME_INVALID警告

sor*_*ort 3 firebase firebase-authentication

我正在为我的Web应用程序使用Firebase身份验证,并为Firebase身份验证的Google登录功能自定义重定向域,以便Google的身份验证页面将

显示继续至:https://auth.mydomain.com

而不是继续:https://my-app-12345.firebaseapp.com

因此,我按照Firebase文档说明执行了四个步骤:

(1)为此创建一个CNAME记录auth.mydomain.com,指向my-app-12345.firebaseapp.com

(2)auth.mydomain.com在Firebase控制台中添加到授权域列表

(3)在Google OAuth设置页面中,将重定向页面的URL列入白名单。 https://auth.mydomain.com/__/auth/handler

(4)编辑我的应用程序的JavaScript代码以初始化Firebase库:

var config = {
  ...
  // from 'authDomain: my-app-12345.firebaseapp.com,'
  authDomain: 'auth.mydomain.com',
  ...
};
Run Code Online (Sandbox Code Playgroud)

但是,此后,当我的应用调用firebase.auth().signInWithRedirect(provider)方法时,网络浏览器将显示隐私警告,如下所示:

你的连接不是私人的

攻击者可能试图从auth.mydomain.com窃取您的信息(例如,密码,消息或信用卡)。学到更多

NET :: ERR_CERT_COMMON_NAME_INVALID

...

该服务器无法证明它是auth.mydomain.com ; 它的安全证书来自firebaseapp.com。这可能是由于配置错误或攻击者拦截了您的连接引起的。

继续访问auth.mydomain.com(不安全)

证书信息如下:

firebaseapp.com

颁发者:Google Internet Authority G3

过期:2018年11月13日,星期二

该证书有效。

细节

主题名称

国家:美国

州/省:加利福尼亚

产地:山景

机构:Google Inc

通用名称:firebaseapp.com

下面是URI:

https://auth.mydomain.com/__/auth/handler?apiKey=apiKey&appName=%5BDEFAULT%5D&authType=signInViaRedirect&providerId=google.com&scopes=profile&redirectUrl=https%3A%2F%2Fwww.mydomain.com%2Flogin&v=5.0.4
Run Code Online (Sandbox Code Playgroud)

为什么要为Google登录提示NET::ERR_CERT_COMMON_NAME_INVALID警告自定义重定向域,以及如何避免警告消息的提示,例如使用auth.mydomain.com自己的证书在证书中添加使用者替代名称?

顺便说一句,在上面的警告页面中,如果单击“ 继续执行auth.mydomain.com(不安全)”,则身份验证将按预期进行。

mor*_*rya 12

澄清一下,截至 2020 年 1 月 6 日,上述方法(在 Firebase 托管中使用“重定向”)不再有效。

按照https://levelup.gitconnected.com/how-to-connect-a-domain-to-your-firebase-project-cd47373bad79 中写的内容- 我们可以看到身份验证,我们需要使用“自定义域”而不是“重定向”

这是因为如果使用重定向,在自定义域的出口和入口点与 Google 的身份验证服务器之间签署的 SSL 将无法握手。

换句话说:

如果您是第一次设置:

  1. 在 Firebase 项目 my-app-12345 的控制台中,单击侧面菜单上的托管。

  2. 出现设置托管弹出窗口时,单击继续。然后单击完成。

  3. 在托管页面中,单击连接域。

  4. 当出现连接域弹出窗口时,输入 auth.mydomain.com。那么你就没有勾选“重定向auth.mydomain.com到现有网站”复选框。然后输入 my-app-12345.firebaseapp.com。然后点击继续。

如果您已经设置了重定向域,但无法使其工作 - 您可以简单地编辑条目,然后更改为“自定义”类型。

等待 10 ~ 30 分钟,一旦发生变化,即可正常使用此功能。


sor*_*ort 8

因为auth.mydomain.com指向my-app-12345.firebaseapp.com通过CNAME记录,所以主机firebaseapp.com应为提供SSL证书auth.mydomain.com。即使my-app-12345不使用Firebase托管,也必须在Firebase托管页面中完成此操作。这是基于Firebase 文档的分步方法:

  1. 在Firebase项目my-app-12345的控制台中,单击侧面菜单上的“托管”。
  2. 当出现“设置主机”弹出窗口时,单击“继续”。然后单击完成。
  3. 在“托管”页面中,单击“连接域”。
  4. 当出现“连接域”弹出窗口时,输入auth.mydomain.com。然后点击“重定向auth.mydomain.com到现有网站”复选框。然后输入my-app-12345.firebaseapp.com。然后单击继续。
  5. 当出现“将下面的TXT记录添加到您的DNS提供商以验证您自己的mydomain.com”弹出窗口时,请按照说明进行操作。然后单击验证。(验证可能需要几分钟)。然后单击完成。

现在auth.mydomain.com将以Pending状态显示在“域”部分中。它将很快更改为Connected。一段时间后,NET::ERR_CERT_COMMON_NAME_INVALID警告问题将消失。

PS在Firebase技术支持团队的帮助下,我已经找到了自己的问题的答案。

  • firebase 文档不清楚 cname 和 SSL 问题,但这些步骤正是我需要的 (2认同)
  • 谢谢,这对我有用(尽管下面有 @morespamforya 的回答)。 (2认同)