Help Center/ Object Storage Service/ API Reference/ APIs/ Advanced Bucket Settings/ Configuring a Custom Domain Name for a Bucket
Updated on 2025-10-22 GMT+08:00

Configuring a Custom Domain Name for a Bucket

Functions

OBS uses the PUT method to configure a custom domain name for a bucket. After the configuration is successful, you can access the bucket through the domain name.

To perform this operation, the user must be the bucket owner or the bucket owner's IAM user that has permissions required for configuring custom domain names.

Ensure that the custom domain name can correctly resolve to the OBS service through DNS.

Request Syntax

Binding a custom domain name and server certificate
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
PUT /?customdomain=domainname HTTP/1.1
User-Agent: curl/7.29.0
Host: bucketname.obs.region.myhuaweicloud.com 
Accept: */*
Date: date
Authorization: authorization string
Content-Length: length
Content-MD5: n58IG6hfM7vqI4K0vnWpog==

<CustomDomainConfiguration> 
    <Name>name</Name> 
    <CertificateId>certificateId</CertificateId> 
    <Certificate>certificate</Certificate> 
    <CertificateChain>certificateChain</CertificateChain> 
    <PrivateKey>privateKey</PrivateKey> 
</CustomDomainConfiguration>

Request Parameters

Table 1 Request parameters

Parameter

Mandatory (Yes/No)

Type

Description

customdomain

Yes

String

Definition:

Custom domain name of a bucket.

Constraints:

A bucket can have a maximum of 30 domain names. One custom domain name can be used for only one bucket.

Range:

The value is a string of 0 to 256 characters.

Default value:

None

Request Header

Table 2 Request headers

Header

Type

Mandatory (Yes/No)

Description

Content-MD5

String

No

Definition:

This header is mandatory when you configure a custom domain name certificate to verify that the content of the request body is consistent with what was sent.

Base64-encoded 128-bit MD5 value of the request body calculated according to RFC 1864.

Example: n58IG6hfM7vqI4K0vnWpog==

Constraints:

None

Range:

None

Default value:

None

For details about other common headers, see Table 3.

Request Elements

The request elements are optional. If the request elements are empty, the certificates bound to the same custom domain name will be overwritten.

Table 3 Request elements

Parameter

Mandatory (Yes/No)

Type

Description

Name

No

String

Definition:

Certificate name

Constraints:

Only uppercase letters, lowercase letters, digits, underscores (_), hyphens (-), and periods (.) are allowed.

Range:

The value can contain 3 to 63 characters.

Default value:

None

CertificateId

No

String

Definition:

Certificate ID. If no certificate ID is specified, the system automatically generates a certificate ID.

Constraints:

If you use the CCM service to host a certificate, the specified certificate ID must be the same as that on CCM. If you need to manage the certificates by yourself, do not set the certificate ID in the request.

Range:

The value is a string of 16 characters consisting of letters and digits.

Default value:

An automatically generated random certificate ID that consists of 16 characters

Certificate

No

String

Definition:

Certificate content, which can contain intermediate and root certificates.

Constraints:

  • If CertificateChain contains a certificate chain, only the certificate itself will be extracted from Certificate.
  • Use the escape character \n or \r\n to replace the carriage return and line feed.

Range:

The value is a string of 0 to 65536 characters.

Default value:

None

CertificateChain

No

String

Definition:

Certificate chain. The value can be passed through the Certificate field.

Constraints:

Use the escape character \n or \r\n to replace the carriage return and line feed.

Range:

The value is a string of 0 to 8192 characters.

Default value:

None

PrivateKey

No

String

Definition:

Private key of a certificate.

Constraints:

  • Private keys protected by passwords cannot be uploaded.
  • Use the escape character \n or \r\n to replace the carriage return and line feed.

Range:

The value is a string of 0 to 4096 characters.

Default value:

None

Response Syntax

1
2
3
4
5
6
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: request id
x-obs-id-2:  id
Date: date
Content-Length: 0

Response Headers

The response to the request uses common headers. For details, see Table 1.

Response Elements

This response contains no elements.

Error Responses

No special error responses are returned. For details about error responses, see Table 2.

Sample Request

Binding a custom domain name

1
2
3
4
5
6
7
PUT /?customdomain=obs.ccc.com HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com 
Accept: */*
Date: Mon, 14 Jan 2019 08:31:36 +0000
Authorization: OBS UDSIAMSTUBTEST000094:u2kJF4kENs6KlIDcAZpAKSKPtnc=
Content-Length: 0

Binding a custom domain name and server certificate

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
PUT /?customdomain=obs.ccc.com HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com 
Accept: */*
Date: Mon, 14 Jan 2019 08:31:36 +0000
Authorization: OBS UDSIAMSTUBTEST000094:u2kJF4kENs6KlIDcAZpAKSKPtnc=
Content-Length: 314
Content-MD5: n58IG6hfM7vqI4K0vnWpog==

<CustomDomainConfiguration> 
    <Name>exampleCertName</Name> 
    <CertificateId>exampleCertificateId</CertificateId> 
    <Certificate>exampleCertificate</Certificate> 
    <CertificateChain>exampleCertificateChain</CertificateChain> 
    <PrivateKey>examplePrivateKey</PrivateKey> 
</CustomDomainConfiguration>

Sample Response

1
2
3
4
5
6
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 000001697692CC5380E9D272E6D8F830
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSsfu2GXj9gScHhFnrrTPY2cFOEZuvta
Date: Wed, 13 Mar 2019 10:22:05 GMT
Content-Length: 0