Skip ahead to the Submit the certificate request section for an existing certificate request.
Start an administrative PowerShell session
In the same administrative PowerShell session, modify then run the following command to set the subject, any optional DNS or IP Address subject alternate names, and template of the certificate:
$cert_fqdn = <FQDN for the certificate>
$cert_sans = @("<certificate SAN #1>","<certificate SAN #2>",...)
$cert_ipaddrs = @("<certificate IP address #1>","<certificate IP address #2>",...) |
Log into a server joined to the Austin Active Directory as a user with permissions to request a certificate from the desired template
Start an administrative PowerShell session
In the same administrative PowerShell session, navigate to the location where the certificate request should be created:
#example Set-Location $env:windir\temp |
In the same administrative PowerShell prompt, run the following to create the certificate policy file
$cert_file = $cert_fqdn + "_" + (Get-Date -Format yyyyMMdd-HHmmss)
$cert_file_inf = ((Get-Location).Path + "\" + $cert_file + ".inf")
$cert_file_content = @"
[Version]
Signature=`"`$Windows NT`$`"
[NewRequest]
Subject=`"CN=$cert_fqdn`"
Exportable=TRUE
MachineKeySet=TRUE
KeyLength=2048
[Extensions]
2.5.29.17=`"{text}`"
_continue_=`"DNS=$cert_fqdn&`"
"@
New-Item $cert_file_inf -Type File -Force
Set-Content $cert_file_inf $cert_file_content |
In the same administrative PowerShell prompt, run the following to add any DNS subject alternate names to the certificate policy file:
ForEach ($san in $cert_sans) {Add-Content $cert_file_inf ("_continue_=`"DNS=$san&`"")} |
In the same administrative PowerShell prompt, run the following to add any IP Address subject alternate names to the certificate policy file:
ForEach ($ipaddr in $cert_ipaddrs) {Add-Content $cert_file_inf ("_continue_=`"IPAddress=$ipaddr&`"")} |
In the same administrative PowerShell prompt, run the following to create the request:
$cert_file_req = ((Get-Location).Path + "\" + $cert_file + ".req") certreq -new $cert_file_inf $cert_file_req |
In the same administrative PowerShell prompt, run the following to validate the request:
Get-Content $cert_file_req |
Certificates should only be submitted to the Austin CAs when they require certificate attributes not supported by InCommon such as:
Complete the following instructions to submit the certificate request to the Austin CAs:
In the same administrative PowerShell session, run one of the following to set the certificate template:
For VMware SSL certificates, run the following:
$cert_template = "VMwareSSL6.5" |
For long-duration server certificates, run the following:
$cert_template = "Server-10Year" |
In the same administrative PowerShell session, run the following to define where the signed certificate file will be created using the certificate request file
$cert_file_cer = (Get-Item $cert_file_req).DirectoryName + "\" + (Get-Item $cert_file_req).BaseName + ".cer" |
In the same administrative PowerShell session, run the following to submit the request to an Austin certificate authority:
certreq -submit -attrib ("CertificateTemplate:" + $cert_template) $cert_file_req $cert_file_cer |
Complete the following instructions to submit the certificate request to InCommon:
In the same administrative PowerShell prompt, run the following to accept the response:
Import-Certificate -CertStoreLocation Cert:\LocalMachine\My -FilePath $cert_file_cer |