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

Object Storage Service:PutCname - カスタムドメイン名をバケットにマッピング

最終更新日:Sep 16, 2026

PutCname は、カスタムドメイン名をバケットにマッピングします。標準バケットは完全一致 CNAME のみをサポートします。エージェントバケットは、そのバケットスペースへのアクセスに使用するワイルドカード CNAME もサポートします。

注意事項

  • エージェントバケットに完全一致 CNAME またはワイルドカード CNAME をマッピングする場合、リクエスト XML に IsWildCard 要素を明示的に含め、true または false に設定する必要があります。この値は空にできません。

  • エージェントバケットでは、次の要素はサポートされていません:AccessPointName、AccessPointNameForObjectProcess、PurgeConfiguration/IsPurgeCdnCache、および ClientCaConfiguration (casCertId、インライン証明書、削除操作を含む)。これらのいずれかを設定すると、OSS は 400 MalformedXML エラーを返します。標準バケットは、引き続きこれらの要素を完全にサポートします。

  • バケットスペースを CNAME に直接マッピングすることはできません。バケットスペースへのパブリックネットワークアクセスは、その親のエージェントバケットにマッピングされたワイルドカード CNAME を経由します。

権限

デフォルトでは、Alibaba Cloud アカウントはすべての権限を持っています。Alibaba Cloud アカウント配下の RAM ユーザーおよび 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 は、リクエスト XML の IsWildCard 要素を使用して、CNAME が完全一致かワイルドカードかを宣言します。エージェントバケットの場合、IsWildCard 要素は必須です。

リクエストヘッダー

この操作は、共通のリクエストヘッダーのみを使用します。詳細については、「共通 HTTP ヘッダー」をご参照ください。

リクエスト要素

要素

タイプ

必須

例

説明

BucketCnameConfiguration

コンテナー

はい

N/A

CNAME 設定を格納するコンテナーです。

親ノード:なし

子ノード:Cname

Cname

コンテナー

はい

N/A

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

親ノード:BucketCnameConfiguration

子ノード:Domain、IsWildCard、CertificateConfiguration

Domain

String

はい

example.com

カスタムドメイン名です。完全一致 CNAME をマッピングするには、この要素を console.example.com などの完全なドメイン名に設定します。ワイルドカード CNAME をマッピングするには、この要素を「*.」プレフィックスなしのベースドメイン名 (例:example.com) に設定します。

親ノード:Cname

子ノード:なし

IsWildCard

Boolean

標準バケット:いいえ

エージェントバケット:はい

true

ワイルドカード CNAME をマッピングするかどうかを指定します。有効な値:

  • true:ワイルドカード CNAME をマッピングします。Domain をベースドメイン名に設定します。

  • false:完全一致 CNAME をマッピングします。Domain を完全なドメイン名に設定します。

エージェントバケットの場合、この要素は必須です。明示的に true または false に設定する必要があり、空にすることはできません。標準バケットの場合、この要素はオプションであり、デフォルトは false です。

親ノード:Cname

子ノード:なし

CertificateConfiguration

コンテナー

いいえ

N/A

証明書設定を格納するコンテナーです。ワイルドカード CNAME をマッピングする場合、証明書の CN または SAN は *.<Domain> と一致する必要があるため、ワイルドカード証明書が必要です。

親ノード:Cname

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

CertId

String

いいえ

493****-cn-hangzhou

証明書 ID です。

親ノード:CertificateConfiguration

子ノード:なし

Certificate

String

いいえ

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

証明書の公開鍵です。

親ノード:CertificateConfiguration

子ノード:なし

PrivateKey

String

いいえ

-----BEGIN PRIVATE KEY----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END PRIVATE KEY-----

証明書の秘密鍵です。

親ノード:CertificateConfiguration

子ノード:なし

PreviousCertId

String

いいえ

493****-cn-hangzhou

現在バインドされている証明書の ID です。 Force が true に設定されていない場合、OSS はこの値が実際にバインドされている証明書と一致するかどうかを確認し、一致しない場合はエラーを返します。

重要

証明書をバインドする際に PreviousCertId を指定しない場合は、Force を true に設定してください。

親ノード:CertificateConfiguration

子ノード:なし

Force

String

いいえ

true

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

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

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

親ノード:CertificateConfiguration

子ノード:なし

DeleteCertificate

String

いいえ

true

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

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

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

親ノード:CertificateConfiguration

子ノード:なし

レスポンスヘッダー

この操作は、共通のレスポンスヘッダーのみを返します。詳細については、「共通 HTTP ヘッダー」をご参照ください。

例

  • リクエスト例

    • 標準バケットへのカスタムドメイン名のマッピング

      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 PRIVATE KEY----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END PRIVATE KEY-----</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>
    • エージェントバケットへのワイルドカード CNAME のマッピング (ワイルドカード証明書を使用)

      POST /?cname&comp=add HTTP/1.1
      Host: myab-$uid-$region-ab-apsr.oss-cn-hangzhou.aliyuncs.com
      Content-Type: application/xml
      Content-Length: 186
      Date: Thu, 17 Apr 2025 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>
          <IsWildCard>true</IsWildCard>
          <CertificateConfiguration>
            <Certificate>-----BEGIN CERTIFICATE----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END CERTIFICATE-----</Certificate>
            <PrivateKey>-----BEGIN PRIVATE KEY----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END PRIVATE KEY-----</PrivateKey>
          </CertificateConfiguration>
        </Cname>
      </BucketCnameConfiguration>
    • エージェントバケットへの完全一致 CNAME のマッピング

      POST /?cname&comp=add HTTP/1.1
      Host: myab-$uid-$region-ab-apsr.oss-cn-hangzhou.aliyuncs.com
      Content-Type: application/xml
      Content-Length: 186
      Date: Thu, 17 Apr 2025 15:39:12 GMT
      Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=host,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
      <BucketCnameConfiguration>
        <Cname>
          <Domain>console.example.com</Domain>
          <IsWildCard>false</IsWildCard>
        </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 API をサポートしています:

ossutil

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

エラーコード

エラーコード

HTTP ステータスコード

説明

InvalidArgument

400

エラーの原因として、以下が考えられます:

  • CNAME の形式が無効です。返された XML で特定のエラーフィールドと理由を確認できます。

  • エージェントバケットの場合、IsWildCard 要素が欠落しているか、その値が空です。

  • ワイルドカードのベースドメイン名の検証に失敗しました。たとえば、ラベルの数が上限を超えている、レベル数が不足している、ドメイン名が高リスクの TLD の組み合わせを使用している、などが考えられます。

MalformedXML

400

リクエストにエージェントバケットがサポートしていない要素 (AccessPointName、AccessPointNameForObjectProcess、PurgeConfiguration/IsPurgeCdnCache、または ClientCaConfiguration) が含まれているか、リクエスト本文の形式が無効です。

CnameCertificateMismatch

400

証明書が CNAME ドメイン名と一致しません。ワイルドカード CNAME をマッピングする場合は、CN または SAN が *.<Domain> と一致するワイルドカード証明書を使用してください。

NeedVerifyDomainOwnership

403

ドメイン名の所有権が検証されていません。

ドメイン名の所有権を検証するには、次の手順を実行してください:

  1. CreateCnameToken API を呼び出して、ドメイン名の所有権の検証に必要な CNAME トークンを作成してください。エージェントバケットでワイルドカードのベースドメイン名のトークンを作成する場合は、wildcard=true を指定してください。

  2. ドメイン名サービスプロバイダーで TXT レコードを追加してください。

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

    説明

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

  3. PutCname API を呼び出して、カスタムドメイン名をマッピングしてください。

CnameDenied

403

ドメイン名は既に使用されています。

CnameIsForbidden

403

ドメイン名は OSS によって予約されているため、マッピングできません。

CnameIsRisk

403

ドメイン名はリスクが高いため、マッピングできません。

NoSuchCnameInRecord

404

ドメイン名に ICP 登録がありません。ICP 登録の申請方法の詳細については、「Alibaba Cloud Domain Names」をご参照ください。

ConflictCname

409

ワイルドカードのベースドメイン名は、同じ UID の別のエージェントバケットに既にマッピングされています。まず元のエージェントバケットからワイルドカード CNAME のマッピングを解除してから、再度マッピングしてください。

CnameAlreadyExists

409

エラーの原因として、以下が考えられます:

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

    現象:返されたエラーメッセージの CnameType は CNAME_OSS です。

  • ドメイン名は画像処理ドメイン名です。

    現象:返されたエラーメッセージの CnameType は CNAME_IMG です。

これらの問題を解決するには、ドメイン名のマッピングを解除してください。詳細については、「ドメイン名のマッピング解除」をご参照ください。

MethodNotAllowed

405

対象のバケットタイプでは CNAME 機能が有効になっていません。