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

Get Service Certificate

更新日: 2015年2月

Get Service Certificate 操作は、クラウド サービスに関連付けられている指定された X.509 証明書のパブリック データを返します。

Get Service Certificate要求は、次のように指定できます。<subscription-id> をサブスクリプション ID で、<service-name> をクラウド サービスの DNS プレフィックス名で、<thumbprint-algorithm> をサムプリントのアルゴリズムで、<thumbprint> をサムプリントでそれぞれ置き換えます。

 

メソッド 要求 URI

GET

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

管理サービスに対して行われる要求をセキュリティで保護する必要があります。詳細については、「サービス管理要求の認証」を参照してください。

ありません。

要求ヘッダーの説明を次の表に示します。

 

要求ヘッダー 説明

x-ms-version

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

ありません。

応答には、HTTP 状態コード、一連の応答ヘッダー、および応答本文が含まれています。

操作が正常に終���すると、ステータス コード 200 (OK) が返されます。ステータス コードの詳細については、「サービス管理のステータス コードとエラー コード」を参照してください。

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

 

応答ヘッダー 説明

x-ms-request-id

管理サービスに対して行われた要求を一意に識別する値。

応答本文の形式は次のとおりです。


<?xml version="1.0" encoding="utf-8"?>
<Certificate xmlns=”http://schemas.microsoft.com/windowsazure”>
  <Data>Base64-encoded-X509-representation</Data>
</Certificate>

応答本文の要素は次のとおりです。

 

要素名 説明

データ

Base 64 エンコード形式の .cer ファイルとしての X.509 サービス証明書のパブリックの部分を指定します。

Get Service Certificate 操作は、クラウド サービスに関連付けられている指定された証明書の Base 64 でエンコードされたバイナリ X.509 証明書データを .cer ファイル形式で返します。この証明書を使用して、Web ロールまたはワーカー ロールへのセキュリティで保護されたアクセスをサポートできます。

次の例のメソッドは、Get Service Certificate 操作を呼び出して、サービス証明書のパブリック データをコンソールに出力し、.cer ファイルにも書き込みます。パラメーターには、サブスクリプション ID、サブスクリプションに関連付けられた管理証明書、クラウド サービスの DNS プレフィックス名、要求された証明書のエンコード アルゴリズムとサムプリントが含まれます。現在、エンコード アルゴリズムとしてサポートされているのは SHA1 だけです。データは、現在のユーザーのドキュメント ディレクトリにあるファイル (ファイル名はサービス名とサムプリントの組み合わせ) に書き込まれます。この例では、エラー チェックは実行されません。操作が失敗した場合、証明書が見つからない場合、またはファイルを書き込むことができない場合は、例外がスローされます。

/// <summary>
/// Calls the Get Certificate operation in the Service Management 
/// REST API for the certificate in the specified hosted service with 
/// the specified algorithm and thumbprint, and writes the Base-64
/// encoded public X.509 certificate data to the console and to the
/// user's documents directory.
/// </summary>
/// <param name="managementCert">The management certificate used to access the service.</param>
/// <param name="subscriptionId">The subscription identifier for the service.</param>
/// <param name="serviceName">The DNS prefix name of the hosted service containing the certificate to get.</param>
/// <param name="algorithm">The encryption algorithm for the certificate to get, for example, "sha1".</param>
/// <param name="thumbprint">The thumbprint for the certificate to get.</param>
/// <returns>The HostedServices XML element from the response.</returns>
public static void GetCertificateExample(
    X509Certificate2 managementCert,
    string subscriptionId,
    string serviceName,
    string algorithm,
    string thumbprint)
{
    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(
        String.Format(
            "https://management.core.windows.net/{0}" +
            "/services/hostedservices/{1}/certificates/{2}-{3}", 
            subscriptionId, serviceName, algorithm, thumbprint));
    request.Method = "GET";
    request.Headers.Add("x-ms-version""2011-10-01");
    request.ClientCertificates.Add(managementCert);
    request.ContentType = "application/xml";
 
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    if (response.ContentLength > 0)
    {
        using (XmlReader reader = XmlReader.Create(response.GetResponseStream()))
        {
            XDocument responseBody = XDocument.Load(reader);
            XNamespace wa = "http://schemas.microsoft.com/windowsazure";
            string data =
                responseBody.Element(wa + "Certificate").Element(wa + "Data").Value;
 
            // Write out the data in Base-64 encoded .cer file format
            // to a file named <serviceName>_<thumbprint>.cer
            const int LineLength = 64;
            StringBuilder output = new StringBuilder();
            output.AppendLine("-----BEGIN CERTIFICATE-----");
            for (int offset = 0; offset < data.Length; offset += LineLength)
            {
                int remaining = data.Length - offset;
                output.AppendLine(data.Substring(
                    offset, remaining < LineLength ? remaining : LineLength));
            }
            output.AppendLine("-----END CERTIFICATE-----");
            string certificatePath = Path.Combine(
                Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
                serviceName + "_" + thumbprint + ".cer");
            using (StreamWriter writer = new StreamWriter(certificatePath, false))
            {
                writer.Write(output.ToString());
            }
 
            // Display the data on the console
            Console.WriteLine("Wrote certificate data to {0}{1}{2}", 
                certificatePath, Environment.NewLine, output.ToString());
        }
    }
    response.Close();
}
 

適切なパラメーターを指定して実行すると、このメソッドのコンソール出力は次のようになります。

Wrote certificate data to C:\Users\username\Documents\MyHostedService1_2EA90CBB65EFCF71C92F55363954A16B87941ECD.cer
-----BEGIN CERTIFICATE-----
MIIDIDCCAgygAwIBAgIQFacJqSCsGKVGE19GKlrEejAJBgUrDgMCHQUAMCMxITAf
BgNVBAMTGGhvc3RlZHNlcnZpY2VjZXJ0aWZpY2F0ZTAeFw0xMTExMTAwMDM3NDRa
Fw0zOTEyMzEyMzU5NTlaMCMxITAfBgNVBAMTGGhvc3RlZHNlcnZpY2VjZXJ0aWZp
Y2F0ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM94zedfRaAcpOES
oStDBM/r18qdOI7HFawK+8sd+atW93L+pJgUjmEYgbHsBET2YZRTWHV2l6HkV7CR
nSgTMQ/0SrIsGj+l1BG5Xncdp5Do9dbpHOQmZYVB3t3l0BcFgj3DP+atNXWctUpj
dyDJB+USZJB7o0gz3esmyxdD1HaFBu1LW7GfhWHDmC0+QERdoKxAvVKY1wuvCxY1
/LdCno6ZMV95l5xJ5jzf/itRo0A9wD5tlcR7bJL7Xp45REKZoaVwxCIooL8fC427
LQf2EZbwjhU3kqPOyQ40vNTB+ksJneXqXjhh7Hefond9fFe6O7mwGVfbqOsbFWJs
rTA7b40CAwEAAaNYMFYwVAYDVR0BBE0wS4AQMezArIE9mdwqywnNC9Y/NaElMCMx
ITAfBgNVBAMTGGhvc3RlZHNlcnZpY2VjZXJ0aWZpY2F0ZYIQFacJqSCsGKVGE19G
KlrEejAJBgUrDgMCHQUAA4IBAQA0XehZ43Yt/u/NlOSYOkGhCeomndZbBcijGH9f
o39OiMPwN1BOY1Ch1YmlTt60o/1u1Lg7oxx9+NfE4O2x2xqBK+SIT/W4gtowjmwF
g+dRu0qRCYcJL1HaQWGoRbkZrJHNOKsBVUWJbSKyOtM/MZ2v5eZ2q2imDLNMnIPY
6YaeP9s4lLhcu53iuzkHf1JvsmNkvI7XQkCw2W/COu8ndcXmTrhc1btz+j3r6G9s
iGeRQ+xDV394GIAtTZgszefJXVkjiYlHczUmr0ZPKWh3vA/RTyrcQfDVH0QBZ9CM
YNhhI1PIJOPAQ3X5YsYQwah9pbYV4mIXaJKld+eNsEFt3Zo8
-----END CERTIFICATE-----


関連項目

表示:
© 2015 Microsoft