Examples/Resources/xCertReq/1-RequestAltSSLCert.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<#
    .EXAMPLE
    Request and Accept a certificate from an Active Directory Root Certificate Authority. This certificate
    is issued using an subject alternate name with multiple DNS addresses.
 
    This example is allowing storage of credentials in plain text by setting PSDscAllowPlainTextPassword to $true.
    Storing passwords in plain text is not a good practice and is presented only for simplicity and demonstration purposes.
    To learn how to securely store credentials through the use of certificates,
    please refer to the following TechNet topic: https://technet.microsoft.com/en-us/library/dn781430.aspx
#>

configuration Example
{
    param
    (
        [Parameter()]
        [System.String[]]
        $NodeName = 'localhost',

        [Parameter(Mandatory = $true)]
        [ValidateNotNullorEmpty()]
        [System.Management.Automation.PSCredential]
        $Credential
    )

    Import-DscResource -ModuleName xCertificate

    Node $AllNodes.NodeName
    {
        xCertReq SSLCert
        {
            CARootName          = 'test-dc01-ca'
            CAServerFQDN        = 'dc01.test.pha'
            Subject             = 'contoso.com'
            KeyLength           = '2048'
            Exportable          = $true
            ProviderName        = '"Microsoft RSA SChannel Cryptographic Provider"'
            OID                 = '1.3.6.1.5.5.7.3.1'
            KeyUsage            = '0xa0'
            CertificateTemplate = 'WebServer'
            SubjectAltName      = 'dns=fabrikam.com&dns=contoso.com'
            AutoRenew           = $true
            FriendlyName        = 'SSL Cert for Web Server'
            Credential          = $Credential
        }
    }
}