REST Resource: projects.sites.customDomains

资源:自定义域

CustomDomain是将域名链接到 Firebase 托管网站的实体。将CustomDomain添加到您的网站,以允许托管提供网站内容以响应针对您的域名的请求。

JSON 表示
{
  "name": string,
  "annotations": {
    string: string,
    ...
  },
  "createTime": string,
  "updateTime": string,
  "deleteTime": string,
  "expireTime": string,
  "etag": string,
  "hostState": enum (HostState),
  "ownershipState": enum (OwnershipState),
  "requiredDnsUpdates": {
    object (DnsUpdates)
  },
  "issues": [
    {
      object (Status)
    }
  ],
  "certPreference": enum (Type),
  "cert": {
    object (Certificate)
  },
  "redirectTarget": string,
  "reconciling": boolean,
  "labels": {
    string: string,
    ...
  }
}
领域
name

string

仅输出。 CustomDomain的完全限定名称。

annotations

map (key: string, value: string)

您可以添加注释以留下有关CustomDomain的人类和机器可读的元数据。

包含"key": value对。示例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

createTime

string ( Timestamp format)

仅输出。自定义域的创建时间。

RFC3339 UTC“Zulu”格式的时间戳,具有纳秒分辨率和最多九个小数位。示例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

updateTime

string ( Timestamp format)

仅输出。上次更新CustomDomain时间。

RFC3339 UTC“Zulu”格式的时间戳,具有纳秒分辨率和最多九个小数位。示例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

deleteTime

string ( Timestamp format)

仅输出。 CustomDomain被删除的时间;对于尚未删除的自定义域,为 null。删除的自定义域会保留大约 30 天,之后托管会将其完全删除。要恢复已删除的自定义域,请发出customDomains.undelete请求。

RFC3339 UTC“Zulu”格式的时间戳,具有纳秒分辨率和最多九个小数位。示例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

expireTime

string ( Timestamp format)

仅输出。软删除的CustomDomain从托管中完全删除之前的最短时间;对于尚未删除的自定义域,为 null。

RFC3339 UTC“Zulu”格式的时间戳,具有纳秒分辨率和最多九个小数位。示例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

etag

string

仅输出。一个字符串,表示CustomDomain的当前状态,并允许您在修改它的请求中确认其初始状态。使用该标记可确保发出customDomains.patchcustomDomains.deletecustomDomains.undelete请求时的一致性。

hostState

enum ( HostState )

仅输出。此CustomDomain引用的域名的HostState

ownershipState

enum ( OwnershipState )

仅输出。此CustomDomain引用的域名的OwnershipState

requiredDnsUpdates

object ( DnsUpdates )

仅输出。您应对域名的 DNS 记录进行一组更新,以便托管代表其提供安全内容。

issues[]

object ( Status )

仅输出。主机系统在尝试建立主机为您的域名提供安全内容的能力时遇到的一组错误。解决这些问题以确保您的CustomDomain正常运行。

certPreference

enum ( Type )

该字段可让您指定 Hosting 为您的域名创建哪种 SSL 证书类型。 Spark 计划自定义域只能访问GROUPED证书类型,而 Blaze 计划域可以选择任何选项。

cert

object ( Certificate )

仅输出。托管拥有此自定义域的域名的 SSL 证书。对于新的自定义域,这通常代表托管创建证书的意图,而不是实际的证书。检查state字段以了解更多信息。

redirectTarget

string

CustomDomain应将流量引导至的域名。如果指定,托管将使用 HTTP 301 代码响应针对此自定义域的请求,并将流量路由到指定的redirectTarget

reconciling

boolean

仅输出。该字段如果为 true,则表明 Hosting 的系统正在尝试使自定义域的状态与您的首选状态相匹配。当在customDomains.create请求后最初配置CustomDomain时,或者在customDomains.patch请求后创建新的 SSL 证书以匹配更新的certPreference时,最常见的true是这样。

labels

map (key: string, value: string)

用于额外元数据和/或过滤的标签。

包含"key": value对。示例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

主机状态

您的域名的主机状态。主机状态是通过检查与您的域名关联的每个 IP 地址来确定它是否正在提供托管内容。

枚举
HOST_STATE_UNSPECIFIED您的自定义域的主机状态未指定。如果未指定,则该消息无效。
HOST_UNHOSTED您的自定义域的域名未与任何 IP 地址关联。
HOST_UNREACHABLE无法访问您的自定义域的域名。托管服务的 DNS 查询查找您域名的 IP 地址时出现错误。有关更多详细信息,请参阅CustomDomain对象的issues字段。
HOST_MISMATCH您的自定义域的域名的 IP 地址最终不会解析为托管。
HOST_CONFLICT您的自定义域的域名具有解析为托管和其他服务的 IP 地址。为了确保结果一致,请删除与非托管服务相关的AAAAA记录。
HOST_ACTIVE针对您的自定义域的域名的所有请求均由托管提供服务。如果自定义域的OwnershipState也为ACTIVE ,则托管会在域名上提供您的托管网站的内容。

所有权状态

您的域的所有权状态。一个域最多可由一个 Firebase 托管站点拥有。所有权可以通过两种方式确定:

* TXT records: A TXT record on the domain in the form
`hosting-site=[siteId]`.
* CNAME records: A CNAME record that points to a Hosting site's default
domain.

如果您的CustomDomain处于OWNERSHIP_ACTIVE以外的OwnershipState超过 30 天,并且至少 30 天内没有更新,Hosting 的所有权系统会删除CustomDomain 。要恢复已删除的CustomDomain ,请发出customDomains.undelete请求。

枚举
OWNERSHIP_STATE_UNSPECIFIED您的自定义域的所有权状态未指定。这绝对不应该发生。
OWNERSHIP_MISSING您的自定义域名的域名没有与托管相关的所有权记录;没有 Firebase 项目有权代表域名行事。
OWNERSHIP_UNREACHABLE无法访问您的自定义域的域名。托管服务查找您的域名所有权记录的 DNS 查询出现错误。有关更多详细信息,请参阅CustomDomain对象的issues字段。
OWNERSHIP_MISMATCH您的自定义域的域名归另一个 Firebase 项目所有。删除冲突的TXT记录并将其替换为当前 Firebase 项目的项目特定记录。
OWNERSHIP_CONFLICT您的自定义域的域名存在冲突的TXT记录,这些记录表明您当前的 Firebase 项目和另一个项目的所有权。删除其他项目的所有权记录以授予当前项目所有权。
OWNERSHIP_PENDING您的自定义域的 DNS 记录配置正确。托管将在 24 小时内将您的域所有权转移到此CustomDomain
OWNERSHIP_ACTIVE您的自定义域的域名具有TXT记录,这些记录授予其项目代表其执行操作的权限。

DNS更新

您应该进行一组 DNS 记录更新,以允许托管服务提供安全内容以响应针对您域名的请求。这些更新显示 Hosting 上次查询域名 DNS 记录时的当前状态,以及 Hosting 在您的自定义域完全激活之前需要查看的所需记录集。

JSON 表示
{
  "discovered": [
    {
      object (DnsRecordSet)
    }
  ],
  "desired": [
    {
      object (DnsRecordSet)
    }
  ],
  "checkTime": string
}
领域
discovered[]

object ( DnsRecordSet )

Hosting 在检查域时发现的 DNS 记录集。

desired[]

object ( DnsRecordSet )

托管需要在域上提供安全内容的 DNS 记录集。

checkTime

string ( Timestamp format)

托管上次检查您的自定义域的 DNS 记录。

RFC3339 UTC“Zulu”格式的时间戳,具有纳秒分辨率和最多九个小数位。示例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

DNS记录集

与 Firebase 托管中自定义域的设置和维护相关的一组 DNS 记录。

JSON 表示
{
  "domainName": string,
  "checkError": {
    object (Status)
  },
  "records": [
    {
      object (DnsRecord)
    }
  ]
}
领域
domainName

string

仅输出。记录集所属的域名。

checkError

object ( Status )

仅输出。查询域名的 DNS 记录时托管服务遇到错误。注意:托管会忽略NXDOMAIN错误,因为这些错误通常仅意味着尚未设置域名。

records[]

object ( DnsRecord )

仅输出。域上的记录。

DNS记录

DNS 记录是定义系统和服务在处理域名请求时应如何表现的资源记录。例如,当您将A记录添加到域名的 DNS 记录时,您就是在通知其他系统(例如您用户的 Web 浏览器)联系这些 IPv4 地址以检索与您的域名相关的资源(例如您的托管站点文件) )。

JSON 表示
{
  "domainName": string,
  "type": enum (Type),
  "rdata": string,
  "requiredAction": enum (Action)
}
领域
domainName

string

仅输出。记录所属的域名,例如foo.bar.com.

type

enum ( Type )

仅输出。记录的类型,决定记录包含哪些数据。

rdata

string

仅输出。记录的数据。该值的含义取决于记录类型: - A 和 AAAA:域名的 IP 地址。 - CNAME:另一个用于检查记录的域。 - TXT:与域名关联的任意文本字符串。托管使用 TXT 记录来确定哪些 Firebase 项目有权代表域名执行操作。 - CAA:记录的标志、标签和值,例如0 issue "pki.goog"

requiredAction

enum ( Action )

仅输出。一个枚举,指示此记录所需的操作。

类型

DNS 记录的类型,包括ATXTAAAACAA

枚举
TYPE_UNSPECIFIED记录的类型未指定。如果未指定,则该消息无效。
A A记录,如RFC 1035中定义。 A 记录确定域名将流量定向到哪些 IPv4 地址。
CNAME CNAME记录,如RFC 1035中定义。 CNAME或规范名称记录将域名映射到不同的规范域名。如果存在CNAME记录,则它应该是域名上的唯一记录。
TXT TXT记录,如RFC 1035中定义。 TXT记录保存域名上的任意文本数据。托管使用TXT记录来确定哪个 Firebase 项目有权对域名执行操作。
AAAA RFC 3596 AAAA 记录中定义的 AAAA 记录确定域名将流量定向到哪些 IPv6 地址。
CAA

CAA 记录,如RFC 6844中定义。 CAA(即证书颁发机构授权)记录确定哪些证书颁发机构(SSL 证书铸造组织)有权为域名铸造证书。 Firebase Hosting 使用pki.goog作为其主要 CA。

CAA 记录级联。 foo.com上的 CAA 记录也适用于bar.foo.com ,除非bar.foo.com有自己的一组 CAA 记录。

CAA 记录是可选的。如果域名及其父域名没有 CAA 记录,则所有 CA 都有权代表其创建证书。一般来说,托管仅在需要修改 CAA 记录以解锁 SSL 证书创建时才会要求您修改 CAA 记录。

行动

操作是您应该对此 DNS 记录执行的一种操作,以配置您的域以与 Firebase 托管一起使用。

枚举
NONE无需采取任何行动。
ADD将此记录添加到您的 DNS 记录中。
REMOVE从您的 DNS 记录中删除此记录。

类型

证书的类型。确定托管系统如何处理创建和维护证书。

枚举
TYPE_UNSPECIFIED证书的类型未指定。如果未指定,则该消息无效。
TEMPORARY一种短期证书类型,暂时覆盖域名,而托管则创建更永久的证书。
GROUPED Spark 计划自定义域的标准证书。
PROJECT_GROUPED仅 Blaze 计划。涵盖同一 Firebase 项目中 1 到 100 个具有自定义域的域名的证书。
DEDICATED仅 Blaze 计划。涵盖单个域名的证书。

证书

SSL 证书,用于为针对您的域名的请求提供端到端加密。 Certificate可以是实际的 SSL 证书,对于新创建的自定义域,也可以是托管意图创建的证书。

JSON 表示
{
  "type": enum (Type),
  "state": enum (CertState),
  "verification": {
    object (CertVerification)
  },
  "issues": [
    {
      object (Status)
    }
  ],
  "createTime": string,
  "expireTime": string
}
领域
type

enum ( Type )

仅输出。证书的类型。

state

enum ( CertState )

仅输出。证书的状态。只有CERT_ACTIVECERT_EXPIRING_SOON状态为域名提供 SSL 覆盖。如果状态为PROPAGATING并且托管之前拥有该域名的活动证书,则该以前的活动证书将为该域名提供 SSL 覆盖,直到当前证书传播为止。

verification

object ( CertVerification )

仅输出。您可以将一组 ACME 挑战添加到您的 DNS 记录或现有的非 Hosting 托管提供商中,以允许 Hosting 在您将流量指向托管之前为您的域名创建 SSL 证书。您可以利用这些挑战作为从旧提供商到托管的零停机过渡的一部分。

issues[]

object ( Status )

仅输出。 Hosting 在尝试为您的域名创建证书时遇到的一组错误。解决这些问题以确保托管能够为您网站的访问者提供安全的通信。

createTime

string ( Timestamp format)

仅输出。证书的创建时间。对于TEMPORARY证书,这是托管首次为您的域名生成挑战的时间。对于所有其他证书类型,这是实际证书的创建时间。

RFC3339 UTC“Zulu”格式的时间戳,具有纳秒分辨率和最多九个小数位。示例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

expireTime

string ( Timestamp format)

仅输出。证书的过期时间。此后,该证书将无法再用于在托管和您网站的访问者之间提供安全通信。

RFC3339 UTC“Zulu”格式的时间戳,具有纳秒分辨率和最多九个小数位。示例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

证书状态

您的域名的 SSL 证书的状态。这可以代表实际证书的状态,或者对于新的自定义域,主机尝试创建证书。

枚举
CERT_STATE_UNSPECIFIED证书的状态未指定。如果未指定,则该消息无效。
CERT_PREPARING每个证书的初始状态代表主机在向证书颁发机构发出请求之前创建证书的意图。
CERT_VALIDATING托管正在验证域名的 DNS 记录是否处于允许代表其创建证书的状态。
CERT_PROPAGATING该证书是最近创建的,需要时间在托管的 CDN 中传播。
CERT_ACTIVE该证书处于活动状态,为其代表的域名提供安全连接。
CERT_EXPIRING_SOON证书即将过期,其上的所有域名都将获得新证书。
CERT_EXPIRED证书已过期。托管无法再在您的域名上提供安全内容。

证书验证

您可以使用一组 ACME 质询来允许托管在将流量引导至托管服务器之前为您的域名创建 SSL 证书。使用 DNS 或 HTTP 质询;没有必要两者都提供。

JSON 表示
{
  "dns": {
    object (DnsUpdates)
  },
  "http": {
    object (HttpUpdate)
  }
}
领域
dns

object ( DnsUpdates )

仅输出。添加到您的 DNS 记录的TXT记录,用于确认您让托管为您的域名创建 SSL 证书的意图。

http

object ( HttpUpdate )

仅输出。添加到您现有的非 Hosting 托管服务的文件,用于确认您让 Hosting 为您的域名创建 SSL 证书的意图。

Http更新

您可以添加到现有的非 Hosting 托管服务中的文件,该文件确认您允许 Hosting 的证书颁发机构为您的域创建 SSL 证书的意图。

JSON 表示
{
  "path": string,
  "desired": string,
  "discovered": string,
  "lastCheckTime": string,
  "checkError": {
    object (Status)
  }
}
领域
path

string

仅输出。文件的路径。

desired

string

仅输出。在路径中提供的文本字符串。

discovered

string

仅输出。 Hosting 在上次检查期间是否能够在指定路径上找到所需的文件内容。

lastCheckTime

string ( Timestamp format)

仅输出。托管系统上次检查文件内容的时间。

RFC3339 UTC“Zulu”格式的时间戳,具有纳秒分辨率和最多九个小数位。示例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

checkError

object ( Status )

仅输出。上次内容检查期间遇到错误。如果为 null,则检查成功完成。

方法

create

创建一个CustomDomain

delete

删除指定的CustomDomain

get

获取指定的CustomDomain

list

列出与指定父托管站点关联的每个CustomDomain

patch

更新指定的CustomDomain

undelete

如果指定的CustomDomain已被软删除,则取消删除它。