Exportar (0) Imprimir
Expandir todo

Obtener certificado del servicio

Actualizado: abril de 2014

La operación Get Service Certificate devuelve los datos públicos para el certificado X.509 especificado asociado a un servicio en la nube.

La solicitud Get Service Certificate se puede especificar como sigue. Reemplace <subscription-id> por el identificador de la suscripción, <service-name> por el nombre del prefijo DNS del servicio en la nube, <thumbprint-algorithm> por el algoritmo para la huella digital y <thumbprint> por la huella digital.

 

Método URI de solicitud

GET

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

Debe asegurarse de que la solicitud que se realice al servicio de administración sea segura. Para obtener detalles adicionales, vea Autenticar solicitudes de administración del servicio.

Ninguno.

La tabla siguiente describe los encabezados de solicitud.

 

Encabezado de solicitud Descripción

x-ms-version

Requerido. Especifica la versión de la operación que se utiliza para esta solicitud. Este encabezado debería establecerse en 01.10.09 o posterior. Para obtener más información acerca de los encabezados de control de versiones, vea Control de versiones de la administración del servicio.

La respuesta incluye un código de estado HTTP, un conjunto de encabezados de respuesta y un cuerpo de respuesta.

Una operación correcta devuelve el código de estado 200 (Correcto). Para obtener información acerca de los códigos de estado, vea Estado y códigos de error de administración del servicio.

La respuesta para esta operación incluye los encabezados siguientes. La respuesta también puede incluir otros encabezados HTTP estándar. Todos los encabezados estándar cumplen la especificación del protocolo HTTP/1.1.

 

Encabezado de respuesta Descripción

x-ms-request-id

Valor que identifica de forma exclusiva una solicitud realizada ante el servicio de administración.

El formato del cuerpo de respuesta es el siguiente:


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

En la tabla siguiente se describen los elementos del cuerpo de respuesta.

 

Nombre del elemento Descripción

Datos

Especifica la parte pública del certificado del servicio X.509 como una forma del archivo .cer codificada en base 64.

La operación Get Service Certificate devuelve datos binarios codificados en base 64 del certificado X.509 en el formato de archivo .cer del certificado especificado asociado a un servicio en la nube. Este certificado se puede utilizar para admitir el acceso seguro a un rol web o a un rol de trabajo.

El método de ejemplo siguiente llama a la operación Get Service Certificate, que imprime los datos del certificado de servicio públicos en la consola y también los escribe en un archivo .cer. Los parámetros son el identificador de la suscripción, un certificado de administración asociado a la suscripción, el nombre del prefijo DNS para el servicio en la nube, el algoritmo de codificación y la huella digital del certificado solicitado. Actualmente, solo se admite sha1 como algoritmo de codificación. Los datos se escribe en un archivo en el directorio de documentos de usuario actual con un nombre que combina el nombre del servicio y la huella digital. El ejemplo no realiza ninguna comprobación de errores y producirá excepciones si la operación no se realiza correctamente, el certificado no se encuentra o no se puede escribir el archivo.

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

Cuando se ejecuta con los parámetros adecuados, el resultado de la consola de este método se asemejará al siguiente:

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


Vea también

Mostrar:
© 2014 Microsoft