【问题标题】:Firebase Auth - customized redirect domain prompts NET::ERR_CERT_COMMON_NAME_INVALID warningFirebase Auth - 自定义重定向域提示 NET::ERR_CERT_COMMON_NAME_INVALID 警告
【发布时间】:2019-02-12 14:02:51
【问题描述】:

我正在为我的网络应用程序使用 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) 编辑初始化 Firebase 库的应用的 JavaScript 代码:

var config = {
  ...
  // from 'authDomain: my-app-12345.firebaseapp.com,'
  authDomain: 'auth.mydomain.com',
  ...
};

然而,之后,当我的应用调用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 日,星期二

此证书有效。

详情

主题名称

国家:美国

州/省:加利福尼亚

地点:山景

组织:谷歌公司

通用名称: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

为什么要为谷歌登录提示NET::ERR_CERT_COMMON_NAME_INVALID警告自定义重定向域,如何避免提示的警告信息,例如使用auth.mydomain.com自己的证书将主题备用名称添加到证书中?

顺便说一下,在上面的警告页面中,如果点击Proceed to auth.mydomain.com (unsafe),验证将按预期进行。

【问题讨论】:

    标签: firebase firebase-authentication


    【解决方案1】:

    因为auth.mydomain.com通过CNAME记录指向my-app-12345.firebaseapp.com,所以firebaseapp.com的主机应该为auth.mydomain.com提供SSL证书。即使my-app-12345 没有使用 Firebase 托管,也必须在 Firebase 托管页面中完成。这是基于 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 警告问题就会消失。

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

    【讨论】:

    • firebase 文档不清楚 cname 和 SSL 问题,但这些步骤正是我需要的
    • 感谢@sortofimport!添加TXT记录后还需要使用CNAME吗?另外,如果您不使用 my-app-12345.firebaseapp.com 而是使用 my-app-12345.mydomain.com,您是否必须将其用作“现有网站”?
    • @Stevie-Ray Hartog,(1) 是的,即使添加了 TXT,我也必须使用 CNAME。 (2) 我没有尝试用my-app-12345.mydomain.com代替my-app-12345.firebaseapp.com
    • 哇!万分感谢。这应该是文档的一部分:)
    • 谢谢,这对我有用(尽管下面有@morespamforya 的回答)。
    【解决方案2】:

    澄清一下,截至 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 的控制台中,单击侧面菜单上的 Hosting。

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

    3. 在主机页面,点击连接域。

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

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

    等 10 ~ 30 分钟后,更改后才能正常使用此功能。

    【讨论】:

    • 您好,我正在查看这个问题,似乎我们需要在 Firebase 上托管应用才能使其正常工作?我错过了什么吗?我的前端托管在 netlify 上,使用 firebase 进行身份验证。但是我正在阅读的所有步骤似乎都希望我通过将我的域指向 Firebase 来将我的应用程序移动到 Firebase 托管?这就是为什么您需要创建一个子域进行身份验证,例如 auth.mydomain.com?以及它如何与 localhost 一起工作?
    • 是的,看起来是这样 - 这是因为 Firebase(或 Google)服务器需要充当入口点,以确保所交换的 SSL 证书得到 Google 的正确签名。我认为 Firebase 托管元素实际上并不花钱(即您可以在免费帐户上执行此操作来测试这个理论)
    • 我遇到了同样的问题,并且能够根据这个答案修复它。请注意,Google 能够通过使用 CNAME 重定向来提供 SSL 证书,因此您不需要(实际上也不能)添加指向 Firebase IP 的 A 记录。
    • 我只能选择重定向或者添加自定义域,那么在哪里输入my-app-12345.firebaseapp.com?
    • 如果我们不勾选redirect复选框,我们应该在哪里输入my-app-12345.firebaseapp.com?
    猜你喜欢
    • 2018-07-26
    • 1970-01-01
    • 2016-03-16
    • 2012-09-27
    • 2021-10-13
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    相关资源
    最近更新 更多