Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Ottenere il certificato del servizio

 

Il ottenere certificati di servizio operazione restituisce i dati pubblici del certificato x. 509 specificato associato a un servizio cloud.

Il ottenere certificati di servizio richiesta può essere specificata come indicato di seguito. Sostituire <subscription-id> con l'ID sottoscrizione, <service-name> con il DNS del nome del servizio cloud, prefisso <thumbprint-algorithm> con l'algoritmo per l'identificazione personale, e <thumbprint> con l'identificazione personale.

Metodo

URI della richiesta

GET

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

È necessario assicurarsi che la richiesta effettuata al servizio di gestione sia sicura. Per ulteriori informazioni, vedere l'autenticazione delle richieste di Gestione servizio.

Nella tabella seguente descrive le intestazioni di richiesta.

Intestazione della richiesta

Descrizione

x-ms-version

Obbligatorio. Specifica la versione dell'operazione da usare per questa richiesta. Questa intestazione deve essere impostata su 2009-10-01 o versione successiva. Per ulteriori informazioni sulle intestazioni di controllo delle versioni, vedere il controllo delle versioni di Service Management.

La risposta include un codice di stato HTTP, un set di intestazioni di risposta e un corpo della risposta.

Un'operazione completata correttamente restituisce il codice di stato 200 (OK). Per informazioni sui codici di stato, vedere stato di gestione del servizio e codici di errore.

La risposta per questa operazione include le intestazioni seguenti. La risposta può inoltre includere intestazioni HTTP standard aggiuntive. Rispettare tutte le intestazioni standard di specifica del protocollo HTTP/1.1.

Intestazione della risposta

Descrizione

x-ms-request-id

Un valore che identifica in modo univoco una richiesta effettuata nel servizio di gestione.

Il formato del corpo della risposta è come segue:


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

Nella tabella seguente vengono descritti gli elementi del corpo della risposta.

Nome dell'elemento

Descrizione

Dati

Specifica la parte pubblica del certificato del servizio x. 509 come un formato con codifica base 64 del file con estensione cer.

Il ottenere certificati di servizio operazione restituisce dati binari del certificato x. 509 nel formato di file con estensione CER per il certificato specificato associato a un servizio cloud di codifica base 64. Questo certificato può essere utilizzato per supportare l'accesso sicuro a un ruolo web o un ruolo di lavoro.

Nell'esempio seguente viene chiamato metodo il ottenere certificati di servizio operazione, stampa i dati del certificato di servizio pubblico sulla console e scrive inoltre un file con estensione cer. I parametri includono l'ID sottoscrizione, un certificato di gestione associato alla sottoscrizione, il prefisso DNS nome per il servizio cloud e la codifica algoritmo e identificazione personale del certificato richiesto. Attualmente è supportato solo sha1 come algoritmo di codifica. I dati vengono scritti in un file nella directory documenti dell'utente corrente con un nome che combina il nome del servizio e identificazione personale. Nell'esempio non viene alcun controllo degli errori e genererà eccezioni se l'operazione non riesce, il certificato non viene trovato o non può essere scritto il file.

/// <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();
}


Quando si esegue con i parametri appropriati, l'output della console di questo metodo sarà simile al seguente:

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-----


Mostra: