Software Frage Frage an die PowerShell Profis wegen dem Import eines vorhandenen Zertifikates in den IIS

Guten Morgen,

ich benötige mal wieder eure Hilfe wie folgt. Hier die bestehende Funktion, die ein Self Signed Zertfikat mit einer Gültigkeit/Laufzeit von 5 Jahren erstellt. So weit und so gut!
Function IIS_SelfSignCert
{
Import-Module WebAdministration

$Cert = @{
CertStoreLocation = 'CERT:\LocalMachine\MY'
DnsName = $IIS_ServerHostName
FriendlyName = 'Name der App'
NotAfter = (Get-Date).AddYears(5)
}
$SSLCert = New-SelfSignedCertificate @Cert
#-----
$C = 'System.Security.Cryptography.X509Certificates.X509Store'
$AL = 'Root', 'LocalMachine'
$Store = New-Object -TypeName $C -ArgumentList $AL
$Store.Open('ReadWrite')
$Store.Add($SSLCert)
$Store.Close()
#-----
$newhttps = @{
Name = 'Default Web Site'
Protocol = 'https'
Port = 443
}
New-WebBinding @newhttps
#-----
$SSLCert | New-Item -Path IIS:\SslBindings\0.0.0.0!443
Get-Website -Name "$('Default Web Site')" | Get-WebBinding -Protocol "http" -Port 80 | Remove-WebBinding

invoke-command -scriptblock {iisreset}
}
Nun muss ich in Zukunft auch uns zur Verfügung gestellte Zerfifkate importieren können. (ALTERNATIV)

Function IIS_ImportSignCert
{
Code
}

Es muss genau so aufgebaut sein, d.h. Port 80 (http) wird gelöscht und Binding auf Port 443 (https).
Ich habe einige Versuche nach Recherchen unternommen, komme so aber nicht wirklich weiter.
Wer kann mir einen Tipp oder Hinweis geben?
 
Zuletzt bearbeitet:

DrSnuggles

Bekanntes Mitglied

Import-Certificate sollte korrekt sein weil du den Privatekey schon im Localmachine Store hast. Der Certificate Signing Request geht an deine CA und die schickt dir das Cert zurück.
Import-pfxcertificate ist nur der vollständigkeit halber erwähnt ebenso wie Convert-PemToPfx und Convert-PfxToPem
 
Zuletzt bearbeitet:
@dr_tommi
Danke dir für die Frage. Beide Varianten.
@DrSnuggles
Danke dir für die Links. Da das Modul auf GitHub lizenzpflichtig für den kommerzielen Einsatz ist, wenn ich es richtig verstanden habe, muss ich dies mit meinen Chef abklären. Aber macht einen professionellen und umfassenden Eindruck! Danke für den Tipp. Kannte ich noch nicht.

@dr_tommi, @DrSnuggles
Der Code für beide Varianten wäre dies hier. Alles andere im Code bleibt dann unverändert. Bitte um Rückmeldung sollte ich hier ganz falsch liegen. Ich sage Danke für eure Hilfe!
$Cert = @{
CertStoreLocation = 'CERT:\LocalMachine\MY'
DnsName = $IIS_ServerHostName
FilePath = 'Pfad zum Zertifikat' }

$SSLCert = Import-Certificate @Cert

$CertPfx = @{
CertStoreLocation = 'CERT:\LocalMachine\MY'
Password = 'Passwort des Zertfikats'
DnsName = $IIS_ServerHostName
FilePath = 'Pfad zum Zertifikat'
}
$SSLCertPfx = Import-PfxCertificate @CertPfx
 
Zuletzt bearbeitet:

DrSnuggles

Bekanntes Mitglied
@Dr.Windos:

Nein, das Modul ist kostenlos kommerziell benutzbar.

Die Lizenz ist nur für Support und Unterstützung der Weiterentwicklung. Du bekommst dann evtl. schneller einen Bugfix als über Github.

PS: Die meisten Befehle sind für die CA Administration, nur wenige beziehen sich auf Certifcates
 
Zuletzt bearbeitet:
Oben Unten