エクスポート (0) 印刷
すべて展開

Add Service Certificate

更新日: 2014年4月

Add Service Certificate 操作は、ホステッド サービスに証明書を追加します。

Add Service Certificate は非同期の操作です。管理サービスでこの要求の処理が終了したかどうかを確認するには、Get Operation Status を呼び出します。非同期操作の詳細については、「非同期サービス管理要求の追跡」を参照してください。

Add Service Certificate 要求は、次のように指定できます。<subscription-id> をサブスクリプション ID、<service-name> をサービスの DNS プレフィックス名に置き換えます。

 

メソッド 要求の URI HTTP のバージョン

POST

https://management.core.windows.net/<subscription-id>/services/hostedservices/<service-name>/certificates

HTTP/1.1

必須要求ヘッダーと省略可能な要求ヘッダーを次の表に示します。

 

要求ヘッダー 説明

Content-Type

必須です。このヘッダーには、application/xml を設定します。

x-ms-version

必須です。この要求に使用する操作のバージョンを指定します。このヘッダーには、2009-10-01 以降のバージョンを設定する必要があります。バージョン管理ヘッダーの詳細については、「サービス管理のバージョン管理」を参照してください。

要求本文の形式は次のとおりです。


<?xml version="1.0" encoding="utf-8"?>
<CertificateFile xmlns=”http://schemas.microsoft.com/windowsazure”>
  <Data>base64-encoded-file</Data>
  <CertificateFormat>file-format</CertificateFormat>
  <Password>pfx-file-password</Password>
</CertificateFile>

Important重要
要求本文の要素の順序は重要です。ある要素が必須の場合、その要素は、前に示した順序で XML 内に記述する必要があります。

 

要素名 説明

Data

pfx ファイルまたは .cer ファイルの Base 64 エンコード形式。

noteメモ
サービス証明書は、.pfx ファイルまたは .cer ファイルとして追加されます。List Service Certificates 操作または Get Service Certificate 操作を使用してサービス証明書を取得する場合、証明書の公開された部分のみが .cer ファイルとして返されます。

CertificateFormat

サービス証明書の形式。Azure では、pfx ファイル形式と cer ファイル形式がサポートされています。

Password

.pfx 証明書のパスワード。.cer 証明書はパスワードを必要としません。

応答には HTTP ステータス コードと一連の応答ヘッダーが含まれます。

Add Service Certificate は非同期操作であるため、操作が正常に終了したか、失敗したか、または処理中かを確認するには、Get Operation Status を呼び出す必要があります。

Add Service Certificate は非同期操作であるため、常にステータス コード 202 (Accepted) を返します。操作が正常に終了した後のステータス コードを確認するには、Get Operation Status を呼び出します。ステータス コードは、この操作の応答に埋め込まれます。正常に終了した場合、ステータス コードは 200 (OK) となります。

ステータス コードの詳細については、「サービス管理のステータス コードとエラー コード」を参照してください。

この操作の応答には次のヘッダーが含まれます。応答に追加の標準 HTTP ヘッダーが含まれる場合もあります。すべての標準ヘッダーは HTTP/1.1 プロトコル仕様に準拠しています。

 

応答ヘッダー 説明

x-ms-request-id

管理サービスに対して行われた要求を一意に識別する値。非同期操作の場合は、このヘッダーの値を指定して Get Operation Status を呼び出して、操作が正常に終了したか、失敗したか、または処理中かを確認できます。詳細については、「非同期サービス管理要求の追跡」を参照してください。

なし。

この操作の認証には、<subscription-id> で指定されたサブスクリプションに関連付けられている管理証明書を使用できます。詳細については、「サービス管理要求の認証」を参照してください。

Add Service Certificate 操作を使用すると、X.509 証明書をホステッド サービスに追加して、Web ロールおよびワーカー ロールのアプリケーションへのセキュリティで保護されたアクセスを実現できます。この操作を実行すると、成功した要求に対する応答の x-ms-request-id ヘッダー内の要求 ID を伴ってすぐに制御が戻され、ホステッド サービスと証明書の関連付けが Windows Azure によって非同期に実行されます。非同期のサービス証明書の追加操作が完了したタイミングを確認するには、要求 ID を使って Get Operation Status 操作をポーリングします。このときに返される XML 本文の Operation 要素には、Status 要素が格納されています。この要素は、非同期操作のステータスに応じて、InProgressFailed、または Succeeded の値を持ちます。ステータスが Failed または Succeeded になるまでポーリングを続けた場合、Operation 要素の StatusCode 要素に、操作の最終ステータスを表すステータス コードが格納されます。操作が失敗した場合は、Error 要素に別途エラー情報が格納されます。詳細については、「Get Operation Status」を参照してください。

次のメソッドは、要求を作成してサービス証明書を追加した後、要求をサービスに送信して、要求 ID を返します。


public static string AddCertificate(string subscriptionId, string applicationName, X509Certificate2 managementCertificate, string pfxPath, string password)
{
    // Construct the request URI.    var req = (HttpWebRequest)WebRequest.Create(string.Format("https://management.core.windows.net/{0}/services/hostedservices/{1}/certificates", subscriptionId, applicationName));

    // Set the request method and the content type for the request.
    req.Method = "POST";
    req.ContentType = "application/xml";

    // Add the x-ms-version header.
    req.Headers.Add("x-ms-version", "2009-10-01");

    // Add the certificate.
    req.ClientCertificates.Add(managementCertificate);

    // Construct the request body.
    using (var writer = new StreamWriter(req.GetRequestStream()))
    {
        writer.Write(string.Format(@"<?xml version=""1.0"" encoding=""utf-8""?>
                                   <CertificateFile xmlns=""http://schemas.microsoft.com/windowsazure"">
                                   <Data>{0}</Data>
                                   <CertificateFormat>pfx</CertificateFormat>
                                   <Password>{1}</Password>
                                   </CertificateFile>", 
                                   Convert.ToBase64String(File.ReadAllBytes(pfxPath)), 
                                   password));
    }

    // Submit the request and return the request ID.
    return req.GetResponse().Headers["x-ms-request-id"];
}

表示:
© 2014 Microsoft