カスタムドメイン名をバケットにマッピングします。
権限
デフォルトでは、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 | 証明書を上書きするかどうかを指定します。有効な値:
親ノード: CertificateConfiguration 子ノード: なし |
DeleteCertificate | 文字列 | いいえ | true | 証明書を削除するかどうかを指定します。有効な値:
親ノード: 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 | ドメイン名の所有権が確認されていないために返されるエラーメッセージ。 ドメイン名の所有権を確認するには、次の手順を実行します。
|
CnameDenied | 403 | ドメイン名が使用中のため返されるエラーメッセージ。 |
CnameIsForbidden | 403 | ドメイン名が OSS 用に予約されているためマッピングできないことを示すエラーメッセージ。 |
CnameIsRisk | 403 | ドメイン名が高リスクドメイン名であるためマッピングできないことを示すエラーメッセージ。 |
NoSuchCnameInRecord | 404 | 指定されたドメイン名に ICP ライセンスがないために返されるエラーメッセージ。 ドメイン名の ICP 登録申請方法の詳細については、「ドメインとは」をご参照ください。 |
CnameAlreadyExists | 409 | 考えられる原因:
上記の問題を解決するには、現在のドメイン名とバケット間のマッピングを削除する必要があります。 詳細については、「HTTP 409 状態コード」トピックの「CnameAlreadyExists」セクションをご参照ください。 |