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

时间:2018-09-07 08:47:04

标签: firebase firebase-authentication

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

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

代替继续:https://my-app-12345.firebaseapp.com

所以我按照Firebase's documentation上的说明执行了四个步骤:

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

(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',
  ...
};

但是,此后,当我的应用程序调用{​​{1}}方法时,Web浏览器将显示隐私警告,如下所示:

  

您的连接不是私有的

     

攻击者可能试图从 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:

firebase.auth().signInWithRedirect(provider)

为什么要为Google登录提示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 自定义重定向域,以及如何避免出现警告消息,例如使用NET::ERR_CERT_COMMON_NAME_INVALID自己的证书将主题备用名称添加到证书中?

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

2 个答案:

答案 0 :(得分:5)

为了澄清,从2020年1月6日开始,以上方法(在Firebase Hosting中使用“重定向”)不再起作用。

下面用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分钟,即可正常使用此功能。

答案 1 :(得分:4)

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

  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警告问题将消失。

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