Added support for defining IIS site name
This commit is contained in:
parent
fa6e6f9116
commit
6ac08f56f4
2 changed files with 15 additions and 6 deletions
|
@ -5,7 +5,7 @@ Generates a self-signed certificate to be used by IIS for HTTPS communications
|
||||||
|
|
||||||
.DESCRIPTION
|
.DESCRIPTION
|
||||||
Generates a SAN self-signed certificate to be used by IIS for HTTPS communications.
|
Generates a SAN self-signed certificate to be used by IIS for HTTPS communications.
|
||||||
The certificate will be automatically trusted by the local machine and assigned to the HTTPS binding of IIS for the default site.
|
The certificate will be automatically trusted by the local machine and assigned to the HTTPS binding of the defined IIS site.
|
||||||
|
|
||||||
The certificate by default will include the following items in the SAN for the cert:
|
The certificate by default will include the following items in the SAN for the cert:
|
||||||
Hostname
|
Hostname
|
||||||
|
@ -19,6 +19,9 @@ IP Addresses to include in the Certificate. If not provided, the script will gat
|
||||||
.PARAMETER AdditionalDnsNames
|
.PARAMETER AdditionalDnsNames
|
||||||
Specifies additional DNS names that should be added to the certificate
|
Specifies additional DNS names that should be added to the certificate
|
||||||
|
|
||||||
|
.PARAMETER SiteName
|
||||||
|
Site name of the IIS site that should have the HTTPS binding configured. Defaults to Default Web Site
|
||||||
|
|
||||||
.PARAMETER Validity
|
.PARAMETER Validity
|
||||||
Defines the validity of the certificate in years. Defaults to 15 years
|
Defines the validity of the certificate in years. Defaults to 15 years
|
||||||
|
|
||||||
|
@ -41,6 +44,10 @@ param (
|
||||||
$AdditionalDnsNames,
|
$AdditionalDnsNames,
|
||||||
[Parameter(Mandatory=$false)]
|
[Parameter(Mandatory=$false)]
|
||||||
[ValidateNotNullOrEmpty()]
|
[ValidateNotNullOrEmpty()]
|
||||||
|
[string]
|
||||||
|
$SiteName = "Default Web Site",
|
||||||
|
[Parameter(Mandatory=$false)]
|
||||||
|
[ValidateNotNullOrEmpty()]
|
||||||
[int]
|
[int]
|
||||||
$Validity = 15
|
$Validity = 15
|
||||||
)
|
)
|
||||||
|
@ -112,13 +119,13 @@ Import-Certificate -CertStoreLocation cert:\LocalMachine\Root -FilePath $Exporte
|
||||||
|
|
||||||
if (Get-Command -Name "Get-WebBinding" -ErrorAction SilentlyContinue) {
|
if (Get-Command -Name "Get-WebBinding" -ErrorAction SilentlyContinue) {
|
||||||
# Setup https binding if it is not configured
|
# Setup https binding if it is not configured
|
||||||
if ($null -eq (Get-WebBinding -Name "Default Web Site" -Protocol "https")) {
|
if ($null -eq (Get-WebBinding -Name $SiteName -Protocol "https")) {
|
||||||
Write-Verbose "Creating IIS Binding on Default Web Site"
|
Write-Verbose "Creating IIS Binding on Default Web Site"
|
||||||
New-WebBinding -Name "Default Web Site" -IPAddress "*" -Port 443 -Protocol "https"
|
New-WebBinding -Name $SiteName -IPAddress "*" -Port 443 -Protocol "https"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Assign to IIS Binding
|
# Assign to IIS Binding
|
||||||
(Get-WebBinding -Name "Default Web Site" -Port 443 -Protocol "https").AddSslCertificate($GeneratedCert.Thumbprint, "my")
|
(Get-WebBinding -Name $SiteName -Port 443 -Protocol "https").AddSslCertificate($GeneratedCert.Thumbprint, "my")
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Write-Warning "IIS not installed so the binding was not configured`n"
|
Write-Warning "IIS not installed so the binding was not configured`n"
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
# New-SanCertificate
|
# New-SanCertificate
|
||||||
|
|
||||||
Generates a self-signed certificate to be used by IIS for HTTPS communications
|
Generates a SAN self-signed certificate to be used by IIS for HTTPS communications.
|
||||||
|
The certificate will be automatically trusted by the local machine and assigned to the HTTPS binding of the defined IIS site.
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- Must be running as an admin
|
- Must be running as an admin
|
||||||
- IIS must be installed for it to set the binding on the Default site
|
- IIS must be installed for it to set the binding on the site
|
||||||
|
|
||||||
## Variables
|
## Variables
|
||||||
|
|
||||||
|
@ -13,6 +14,7 @@ Generates a self-signed certificate to be used by IIS for HTTPS communications
|
||||||
| ------------------ | -------- | ---------------------------- | ------- | ---------------------------------------------------------------------- |
|
| ------------------ | -------- | ---------------------------- | ------- | ---------------------------------------------------------------------- |
|
||||||
| IpAddress | No | IPv4 addresses of the system | | IP Addresses to include in the Certificate |
|
| IpAddress | No | IPv4 addresses of the system | | IP Addresses to include in the Certificate |
|
||||||
| AdditionalDnsNames | No | | | Specifies additional DNS names that should be added to the certificate |
|
| AdditionalDnsNames | No | | | Specifies additional DNS names that should be added to the certificate |
|
||||||
|
| SiteName | No | Default Web Site | | Defines the website that will have the IIS binding configured |
|
||||||
| Validity | No | 15 | | Defines the validity of the certificate in years |
|
| Validity | No | 15 | | Defines the validity of the certificate in years |
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
Loading…
Reference in a new issue