すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:PutCname

最終更新日:Apr 30, 2025

カスタムドメイン名をバケットにマッピングします。

権限

デフォルトでは、Alibaba Cloud アカウントはすべての権限を持っています。 RAM ユーザーまたは Alibaba Cloud アカウントの RAM ロールは、デフォルトでは権限を持っていません。 Alibaba Cloud アカウントまたはアカウント管理者は、RAM ポリシーまたはバケットポリシーを通じて操作権限を付与する必要があります。

API

アクション

説明

PutCname

oss:PutCname

カスタムドメイン名をバケットにマッピングします。

yundun-cert:DescribeSSLCertificatePrivateKey

カスタムドメイン名をバケットにマッピングする際に、証明書が添付されている場合は、これら 3 つの操作権限が必要です。

yundun-cert:DescribeSSLCertificatePublicKeyDetail

yundun-cert:CreateSSLCertificate

リクエスト構文

POST /?cname&comp=add HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Content-Type: application/xml
Content-Length: 186
Date: GMT Date
Authorization: SignatureValue
<BucketCnameConfiguration>
  <Cname>
    <Domain>example.com</Domain>
  </Cname>
</BucketCnameConfiguration>

リクエストヘッダー

PutCname リクエストのすべてのリクエストヘッダーは、共通リクエストヘッダーです。 詳細については、「共通リクエストヘッダー」をご参照ください。

リクエスト要素

要素

タイプ

必須

説明

BucketCnameConfiguration

コンテナー

はい

該当なし

CNAME レコードを格納するコンテナー。

親ノード: なし

子ノード: Cname

Cname

コンテナー

はい

該当なし

CNAME 情報を格納するコンテナー。

親ノード: BucketCnameConfiguration

子ノード: Domain

Domain

文字列

はい

example.com

カスタムドメイン名。

親ノード: Cname

子ノード: なし

CertificateConfiguration

コンテナー

いいえ

該当なし

証明書が構成されているコンテナー。

親ノード: Cname

子ノード: CertId、Certificate、PrivateKey、PreviousCertId、Force、および DeleteCertificate

CertId

文字列

いいえ

493****-cn-hangzhou

証明書の ID。

親ノード: CertificateConfiguration

子ノード: なし

Certificate

文字列

いいえ

-----BEGIN CERTIFICATE----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END CERTIFICATE-----

証明書の公開鍵。

親ノード: CertificateConfiguration

子ノード: なし

PrivateKey

文字列

いいえ

-----BEGIN CERTIFICATE----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END CERTIFICATE-----

証明書の秘密鍵。

親ノード: CertificateConfiguration

子ノード: なし

PreviousCertId

文字列

いいえ

493****-cn-hangzhou

証明書の ID。 Force パラメーターが true に設定されていない場合、OSS サーバーは Force パラメーターの値が現在の証明書 ID と一致するかどうかを確認します。 値が証明書 ID と一致しない場合は、エラーが返されます。

重要

証明書をバインドするときに PreviousCertId パラメーターを指定しない場合は、Force パラメーターを true に設定する必要があります。

親ノード: CertificateConfiguration

子ノード: なし

Force

文字列

いいえ

true

証明書を上書きするかどうかを指定します。有効な値:

  • true: 証明書を上書きします。

  • false: 証明書を上書きしません。

親ノード: CertificateConfiguration

子ノード: なし

DeleteCertificate

文字列

いいえ

true

証明書を削除するかどうかを指定します。有効な値:

  • true: 証明書を削除します。

  • false: 証明書を削除しません。

親ノード: CertificateConfiguration

子ノード: なし

レスポンスヘッダー

PutCname リクエストへのレスポンスのすべてのヘッダーは、共通レスポンスヘッダーです。 詳細については、「共通レスポンスヘッダー」をご参照ください。

  • リクエストの例

    • ドメイン名をマッピングする

      POST /?cname&comp=add HTTP/1.1
      Host: oss-example.oss-cn-hangzhou.aliyuncs.com
      Content-Type: application/xml
      Content-Length: 186
      Date: Thu, 24 Sep 2015 15:39:12 GMT
      Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=host,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
      <BucketCnameConfiguration>
        <Cname>
          <Domain>example.com</Domain>
        </Cname>
      </BucketCnameConfiguration>
    • ドメイン名に証明書をバインドする

      POST /?cname&comp=add HTTP/1.1
      Host: oss-example.oss-cn-hangzhou.aliyuncs.com
      Content-Type: application/xml
      Content-Length: 186
      Date: Thu, 24 Sep 2015 15:39:12 GMT
      Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=host,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
      <BucketCnameConfiguration>
        <Cname>
          <Domain>example.com</Domain>
          <CertificateConfiguration>
            <CertId>493****-cn-hangzhou</CertId>
            <Certificate>-----BEGIN CERTIFICATE----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END CERTIFICATE-----</Certificate>
            <PrivateKey>-----BEGIN CERTIFICATE----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END CERTIFICATE-----</PrivateKey>
            <PreviousCertId>493****-cn-hangzhou</PreviousCertId>
            <Force>true</Force>
          </CertificateConfiguration>
        </Cname>
      </BucketCnameConfiguration>
    • ドメイン名から証明書の紐付けを解除する

      ドメイン名で証明書の使用を継続したくない場合は、証明書の紐付けを解除できます。

      POST /?cname&comp=add HTTP/1.1
      Host: oss-example.oss-cn-hangzhou.aliyuncs.com
      Content-Type: application/xml
      Content-Length: 186
      Date: Thu, 24 Sep 2015 15:39:12 GMT
      Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=host,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
      <BucketCnameConfiguration>
        <Cname>
          <Domain>example.com</Domain>
            <CertificateConfiguration>
            <DeleteCertificate>True</DeleteCertificate>
          </CertificateConfiguration>
        </Cname>
      </BucketCnameConfiguration>
  • 正常なレスポンスの例

    content-length: 0
    x-oss-console-auth: success
    server: AliyunOSS
    x-oss-server-time: 980
    connection: keep-alive
    x-oss-request-id: 5C1B138A109F4E405B2D
    date: Wed, 15 Sep 2021 03:33:37 GMT

OSS SDK

次のプログラミング言語の OSS SDK を使用して、PutCname を呼び出すことができます。

ossutil

PutCname 操作に対応する ossutil コマンドについては、「put-cname」をご参照ください。

エラーコード

エラーコード

HTTP ステータスコード

説明

InvalidArgument

400

CNAME レコードの形式が無効なために返されるエラーメッセージ。 返される XML コンテンツで、エラーフィールドとエラーの原因を確認できます。

NeedVerifyDomainOwnership

403

ドメイン名の所有権が確認されていないために返されるエラーメッセージ。

ドメイン名の所有権を確認するには、次の手順を実行します。

  1. CreateCnameToken 操作を呼び出して、ドメイン名の所有権の確認に使用する CNAME トークンを作成します。

    説明

    デフォルトでは、CNAME トークンは作成後 72 時間で有効期限が切れます。 既存のトークンの有効期間内に新しい CNAME トークンが作成された場合は、既存の CNAME トークンが返されます。

  2. ドメイン名プロバイダーのシステムに TXT レコードを追加します。

    たとえば、カスタムドメイン example.com の TXT レコードを追加します。 レコードを追加する際は、レコードタイプとして TXT を選択し、ホストレコードとして _dnsauth.example を入力し、手順 1 から返された CNAME トークンをレコード値として入力します。 その他のパラメーターはデフォルト設定のままにします。 CNAME レコードの追加方法の詳細については、「カスタムドメイン名をマッピングする」トピックの「CNAME レコードを手動で追加する」セクションをご参照ください。

    説明

    TXT レコードを追加した後、TXT レコードが有効になるまで数分かかります。

  3. PutCname 操作を呼び出して、カスタムドメイン名をマッピングします。

CnameDenied

403

ドメイン名が使用中のため返されるエラーメッセージ。

CnameIsForbidden

403

ドメイン名が OSS 用に予約されているためマッピングできないことを示すエラーメッセージ。

CnameIsRisk

403

ドメイン名が高リスクドメイン名であるためマッピングできないことを示すエラーメッセージ。

NoSuchCnameInRecord

404

指定されたドメイン名に ICP ライセンスがないために返されるエラーメッセージ。 ドメイン名の ICP 登録申請方法の詳細については、「ドメインとは」をご参照ください。

CnameAlreadyExists

409

考えられる原因:

  • ドメイン名が、現在のアカウントに属する別のバケットにマッピングされています。

    問題の説明: 返されたエラーメッセージの CnameType パラメーターの値は CNAME_OSS です。

  • ドメイン名が画像処理に使用されています。

    問題の説明: 返されたエラーメッセージの CnameType パラメーターの値は CNAME_IMG です。

上記の問題を解決するには、現在のドメイン名とバケット間のマッピングを削除する必要があります。 詳細については、「HTTP 409 状態コード」トピックの「CnameAlreadyExists」セクションをご参照ください。