Share via


Create (POST) Certificates

Update using the HTTP POST operation.

Code Examples

Request

Method Request URI HTTP Version

POST

HTTPS://<HOST>:<PORT>/00000000-0000-0000-0000-000000000000/Certificates

HTTP/1.1

Request URI Parameters

The POST operation has no parameters.

Request URI Example

Example URI

POST https://sma-server:9090/00000000-0000-0000-0000-000000000000/Certificates HTTP/1.1

Request Headers

For more information about the common request headers used by this operation, see Standard Service Management Automation POST/GET/PUT/DELETE Headers.

Request Body

The POST request body.

<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:d="https://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="https://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
  <category term="Orchestrator.ResourceModel.Certificate" scheme="https://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
  <id />
  <title />
  <updated>2014-04-15T20:04:13Z</updated>
  <author>
    <name />
  </author>
  <content type="application/xml">
    <m:properties>
      <d:CertificateID m:type="Edm.Guid">00000000-0000-0000-0000-000000000000</d:CertificateID>
      <d:CreationTime m:type="Edm.DateTime">0001-01-01T00:00:00</d:CreationTime>
      <d:Description>Certificate description</d:Description>
      <d:ExpiryTime m:type="Edm.DateTime">2039-12-31T15:59:59</d:ExpiryTime>
      <d:LastModifiedTime m:type="Edm.DateTime">0001-01-01T00:00:00</d:LastModifiedTime>
      <d:Name>Test Certificate</d:Name>
      <d:RawValue>IAAAAAEAAADLAQAAMIIBxzCCAXGgAwIBAgIQ6HiYt4ogwYtOIAaaaYqd1jANBgkqhkiG9w0BAQQFADAWMRQwEgYDVQQDEwtSb290IEFnZW5jeTAeFw0wMzA0MDUxOTUwMTlaFw0zOTEyMzEyMzU5NTlaMCIxIDAeBgNVBAMTF0pvZSdzLVNvZnR3YXJlLUVtcG9yaXVtMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkwfHx50UjZSiTTozk0zzYXcrrbj7qlO/hXX8UGbbllfDB5+noDrSTl2Mdtrwwf80Oy6VbaDnPz3iNUG+VDM4tcVrLbHNMjSrk5Ndg8rK6EeWVHuYE7PUlgLTPU/2W4idPIFvUUv5IOa8q6SxD5Twt+xbsGz4afanH18J95xwVHQIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwDQYJKoZIhvcNAQEEBQADQQBqbAerWZcQboC8qxwAPVoJz3Raee8hiyt4eQYETACAMDn5Io6u6nUpvzd6CFSKcFZ9pWjTdBlzm8Lm/qHDmQ3u</d:RawValue>
      <d:TenantID m:type="Edm.Guid">00000000-0000-0000-0000-000000000000</d:TenantID>
      <d:Thumbprint>8044E2A478067D4F8867BB57A11006C1799A611D</d:Thumbprint>
      <d:Value m:null="true" />
    </m:properties>
  </content>
</entry>

Response

Response Codes

Response Code Description

HTTP/1.1 201 Created

Request fulfilled.

Response Headers

For more information about the common response headers used by this operation, see Standard Service Management Automation POST/GET/PUT/DELETE Headers.

Response Body

The POST response body.

<?xml version="1.0" encoding="utf-8"?>
<entry xml:base="https://sma-server:9090/00000000-0000-0000-0000-000000000000/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="https://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="https://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
  <id>https://sma-server:9090/00000000-0000-0000-0000-000000000000/Certificates(guid'd5db8755-c6d8-43c1-bdff-df0cc632b1df')</id>
  <category term="Orchestrator.ResourceModel.Certificate" scheme="https://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
  <link rel="edit" title="Certificate" href="Certificates(guid'd5db8755-c6d8-43c1-bdff-df0cc632b1df')" />
  <title />
  <updated>2014-04-15T20:04:14Z</updated>
  <author>
    <name />
  </author>
  <content type="application/xml">
    <m:properties>
      <d:CertificateID m:type="Edm.Guid">d5db8755-c6d8-43c1-bdff-df0cc632b1df</d:CertificateID>
      <d:TenantID m:type="Edm.Guid">00000000-0000-0000-0000-000000000000</d:TenantID>
      <d:Name>Test Certificate</d:Name>
      <d:RawValue m:null="true" />
      <d:Value>MsaVHj0uWRV6bLGpBl8lraF5JzTzSalI9F0rAwIJqt/6yNgRZ2cciHxlkA0aGC0+V3fiXu+no/Ts5DJnxjAY6SWaivjXmqViSc8I/BYNwi3l5qjeEp0F7izsNfDj4okr+r2Yp3joOltW78Zpz9z3FYr5DFSLe03keeOy0CeyP2rAJx/Cj6R+opiyGOVjfYmm3BdkXDWlAeS0SeKCdSPKPm3ssXu88Td3VJIGA5ROqQ5/whLfwpvv2kiQiyV4Dz91Hv2tErMO0TQZDnGIpRKojR0PjMl/Q7J1I43CcSQfACu5NNRiBrWQiIxV5BA9RIWlTa26Ykrt5NinsOhuy80GRATR3pdBYGNTkMEyflnHzAB8BhMA1s3puqPjAViIhghMUwQhi5TVTa03F54WBfNeyqWM4jTJOaf+Ji7PI9HfI25mgyiVSXTgbcovs6SjuLg9R8+/ROTLzodWGqT4VTCWnJ2JJ/W0FzMelayDYtIgMBxVwpwPzkJRMYpq0EYE+MlJa8bQncgFeLbCgr2PWx5IQOr0jQTWTNPpTj1x7jFu3I44tjdxjgFH6TlZtakw1HbZK3AbUrvhm+y+KIDyoXGXWhB3S7SX02MTmqzGwXEKjn5aFFymA8ws0Ux1MXgoLxcastCDTx2pSmf3m3ZHqx/J1KnsvRXIwB5rSmsrw0T60YX4qcxj87CfsRQuSxLPWk2kgO4Ct2XnKjMDj/lK5mzbDEr3d1QK8Sze+nxqfq46+XqQSnLHYXbP9JBTyNQKv6gDvU+pEOT8ZxHEGkxgoHxbfS4f883gSQFwjM93YLSR8HRsF057pj6pMwrQBajbLaAeO550JshTHPN/OmAy3/VSlQ==</d:Value>
      <d:Description>Certificate description</d:Description>
      <d:Thumbprint>8044E2A478067D4F8867BB57A11006C1799A611D</d:Thumbprint>
      <d:ExpiryTime m:type="Edm.DateTime">2039-12-31T15:59:59</d:ExpiryTime>
      <d:CreationTime m:type="Edm.DateTime">0001-01-01T00:00:00</d:CreationTime>
      <d:LastModifiedTime m:type="Edm.DateTime">0001-01-01T00:00:00</d:LastModifiedTime>
    </m:properties>
  </content>
</entry>

Code Examples

The following example creates a new Variable.

namespace CodeSample.Microsoft.SystemCenter.SMA
{
    public class SMASamples
    {
        public static void Main()
        { 
            // Replace this with the name of your SMA web service endpoint.
            string serviceEndPoint = "https://waplabvm4:9090/00000000-0000-0000-0000-000000000000";                      

            // Setup the connection to SMA
            OrchestratorApi SMAService = new OrchestratorApi(new Uri(serviceEndPoint));

            // Set credentials to the default or to a specific user.
            ((DataServiceContext)SMAService).Credentials = CredentialCache.DefaultCredentials;
            //((DataServiceContext)SMAService).Credentials = new NetworkCredential("user", "pwd", "domain");

            //ADDED CREDS
            NetworkCredential networkCreds = new NetworkCredential("cdmlab\\cdmlabuser", "!!123abc");
            ((DataServiceContext)SMAService).Credentials = networkCreds;
          
            // This is used here to suppress/ignore certificate errors when using test certificates. 
            // You can remove this section if you are using trusted certificates.
            ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate {return true;});

            try
            {
                // Initialize variables to specify certificate values = path and password are required to instantiate the x509 certificate instance.
                string certificateName = "Test Certificate";
                string certificatePath = "c:\\sma\\certs\\fabrikam.cer";
                string certificatePassword = "password";  // SecureString password
                string certificateDescription = "Certificate description";

                // Create a x509 certificate instance to work with.
                var x509Certificate = new X509Certificate2(certificatePath, certificatePassword, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);

                // Create a new certificate instance.
                var testCertificate = new Certificate();

                // Populate certificate properties with values.
                testCertificate.Name = certificateName;
                testCertificate.RawValue = Convert.ToBase64String(x509Certificate.Export(X509ContentType.SerializedCert, certificatePassword));
                testCertificate.Thumbprint = x509Certificate.Thumbprint;
                testCertificate.ExpiryTime = Convert.ToDateTime(x509Certificate.GetExpirationDateString(), CultureInfo.CurrentCulture);
                testCertificate.Description = certificateDescription;

                // Add the new certificate instance to the Certificates collection.
                // Note: This action is queued up until the SaveChanges action is called.
                SMAService.AddToCertificates(testCertificate);

                // Save all pending actions (client -> server communication initiated).
                SMAService.SaveChanges();

                Console.ReadKey();
            }
            catch (Exception ex)
            {
                throw new ApplicationException("An error occurred during execution.", ex);
            }
        }                 
    }
}

See Also

Concepts

Certificate
Certificates