Created
October 28, 2017 02:59
-
-
Save anthonyeden/710d63247d9b6b9202a11bf00b146c01 to your computer and use it in GitHub Desktop.
Let's Encrypt & Microsoft Remote Desktop Services - Installation Script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"C:\Program Files\Lets Encrypt\letsencrypt.exe" --renew --baseuri "https://acme-v01.api.letsencrypt.org/" | |
powershell -File "C:\Program Files\Lets Encrypt\RDS_INSTALL_CERT.ps1" -CertificateImport "C:\ProgramData\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\remote.example.com-all.pfx" -RDCB remote.example.com |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Install a Let's Encrypt certificate to Remote Desktop Services | |
# Hacked together by Anthony Eden (https://mediarealm.com.au/) | |
#Credit: https://ryanmangansitblog.com/2014/06/17/deploying-rds-2012-wild-card-certificate-using-powershell/ | |
#Credit: https://github.com/Lone-Coder/letsencrypt-win-simple/issues/400 | |
param ( | |
[Parameter(Mandatory=$TRUE, HelpMessage="store the certificate localy (c:\)")] | |
[String] | |
$CertificateImport, | |
[Parameter(Mandatory=$TRUE, HelpMessage="Connection Broker FQDN")] | |
[String] | |
$RDCB | |
) | |
if ( ((get-date) - (ls $CertificateImport).LastWriteTime).minutes -gt 10){ exit } | |
# This is where a temporary certificate will be stored (we delete it at the end) | |
$tempPfxPath = 'C:\ProgramData\letsencrypt-win-simple\temp-pfx.pfx' | |
# Import the RemoteDesktop module | |
Import-Module RemoteDesktop | |
# Create the temporary certificate | |
$newCertPfx = Import-PfxCertificate -FilePath $CertificateImport -CertStoreLocation Cert:\LocalMachine\My -Exportable | |
$tempPasswordPfx = ConvertTo-SecureString -String "TemporaryPassword" -Force -AsPlainText | |
Export-PfxCertificate -cert $newCertPfx -FilePath $tempPfxPath -Force -NoProperties -Password $tempPasswordPfx | |
Remove-Item -Path $newCertPfx.PSPath | |
# Configure RDPublishing Certificate for RDS | |
set-RDCertificate -Role RDPublishing ` | |
-ImportPath $tempPfxPath ` | |
-Password $tempPasswordPfx ` | |
-ConnectionBroker $RDCB -Force ` | |
# Configure First RDWebAccess Certificate for RDS | |
set-RDCertificate -Role RDWebAccess ` | |
-ImportPath $tempPfxPath ` | |
-Password $tempPasswordPfx ` | |
-ConnectionBroker $RDCB -Force ` | |
# Configure Second Certificate for RDS | |
set-RDCertificate -Role RDWebAccess ` | |
-ImportPath $tempPfxPath ` | |
-Password $tempPasswordPfx ` | |
-ConnectionBroker $RDCB -Force ` | |
# Configure RDRedirector Certificate for RDS | |
set-RDCertificate -Role RDRedirector ` | |
-ImportPath $tempPfxPath ` | |
-Password $tempPasswordPfx ` | |
-ConnectionBroker $RDCB -force ` | |
# Configure First RDGateway Certificate for RDS | |
set-RDCertificate -Role RDGateway ` | |
-ImportPath $tempPfxPath ` | |
-Password $tempPasswordPfx ` | |
-ConnectionBroker $RDCB -force ` | |
# Configure Second RDGateway Certificate for RDS | |
set-RDCertificate -Role RDGateway ` | |
-ImportPath $tempPfxPath ` | |
-Password $tempPasswordPfx ` | |
-ConnectionBroker $RDCB -force ` | |
# Cleanup the temporary PFX file | |
Remove-Item -Path $tempPfxPath |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hello,
i try this PS Skript.
I make the changes fromNatakugithub,
But i have still this errors
`PS C:\Program Files (x86)\Lets Encrypt> C:\Program Files (x86)\Lets Encrypt\RDS_INSTALL_CERT.ps1
Cmdlet RDS_INSTALL_CERT.ps1 an der Befehlspipelineposition 1
Geben Sie Werte für die folgenden Parameter an:
(Geben Sie zum Aufruf der Hilfe !? ein.)
CertificateImport: C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Certificates
RDCB: RDSGATEWAY.Adress.xx
Password: Uj7HJv2kykk6TCDRyqJz2W/+nPJhZYVTd5tMWhzDINI=
Für "op_Subtraction" und die folgende Argumenteanzahl kann keine Überladung gefunden werden: "2".
In C:\Program Files (x86)\Lets Encrypt\RDS_INSTALL_CERT.ps1:23 Zeichen:6
Import-PfxCertificate : Die PFX-Datei wurde nicht gefunden.
In C:\Program Files (x86)\Lets Encrypt\RDS_INSTALL_CERT.ps1:32 Zeichen:15
Export-PfxCertificate : Das Argument kann nicht an den Parameter "Cert" gebunden werden, da es NULL ist.
In C:\Program Files (x86)\Lets Encrypt\RDS_INSTALL_CERT.ps1:34 Zeichen:29
Remove-Item : Das Argument kann nicht an den Parameter "Path" gebunden werden, da es NULL ist.
In C:\Program Files (x86)\Lets Encrypt\RDS_INSTALL_CERT.ps1:35 Zeichen:19
set-RDCertificate : Der angegebene Pfad "C:\ProgramData\win-acme\temp-pfx.pfx" ist ungültig, oder der Zugriff auf den Pfad ist nicht möglich.
In C:\Program Files (x86)\Lets Encrypt\RDS_INSTALL_CERT.ps1:39 Zeichen:1
Get-RDServer : Der RD-Verbindungsbrokerserver ist nicht verfügbar. Stellen Sie sicher, dass Sie eine Verbindung mit dem
RD-Verbindungsbrokerserver herstellen können.
In C:\Windows\system32\WindowsPowerShell\v1.0\Modules\RemoteDesktop\Certificate.psm1:309 Zeichen:22
set-RDCertificate : In der Bereitstellung ist kein Server mit Web Access für Remotedesktop vorhanden.
In C:\Program Files (x86)\Lets Encrypt\RDS_INSTALL_CERT.ps1:45 Zeichen:1
Get-RDServer : Der RD-Verbindungsbrokerserver ist nicht verfügbar. Stellen Sie sicher, dass Sie eine Verbindung mit dem
RD-Verbindungsbrokerserver herstellen können.
In C:\Windows\system32\WindowsPowerShell\v1.0\Modules\RemoteDesktop\Certificate.psm1:309 Zeichen:22
set-RDCertificate : In der Bereitstellung ist kein Server mit Web Access für Remotedesktop vorhanden.
In C:\Program Files (x86)\Lets Encrypt\RDS_INSTALL_CERT.ps1:51 Zeichen:1
set-RDCertificate : Der angegebene Pfad "C:\ProgramData\win-acme\temp-pfx.pfx" ist ungültig, oder der Zugriff auf den Pfad ist nicht möglich.
In C:\Program Files (x86)\Lets Encrypt\RDS_INSTALL_CERT.ps1:57 Zeichen:1
Get-RDServer : Der RD-Verbindungsbrokerserver ist nicht verfügbar. Stellen Sie sicher, dass Sie eine Verbindung mit dem
RD-Verbindungsbrokerserver herstellen können.
In C:\Windows\system32\WindowsPowerShell\v1.0\Modules\RemoteDesktop\Certificate.psm1:299 Zeichen:20
set-RDCertificate : In der Bereitstellung ist kein RD-Gatewayserver vorhanden.
In C:\Program Files (x86)\Lets Encrypt\RDS_INSTALL_CERT.ps1:63 Zeichen:1
Get-RDServer : Der RD-Verbindungsbrokerserver ist nicht verfügbar. Stellen Sie sicher, dass Sie eine Verbindung mit dem
RD-Verbindungsbrokerserver herstellen können.
In C:\Windows\system32\WindowsPowerShell\v1.0\Modules\RemoteDesktop\Certificate.psm1:299 Zeichen:20
set-RDCertificate : In der Bereitstellung ist kein RD-Gatewayserver vorhanden.
In C:\Program Files (x86)\Lets Encrypt\RDS_INSTALL_CERT.ps1:69 Zeichen:1
Remove-Item : Der Pfad "C:\ProgramData\win-acme\temp-pfx.pfx" kann nicht gefunden werden, da er nicht vorhanden ist.
In C:\Program Files (x86)\Lets Encrypt\RDS_INSTALL_CERT.ps1:75 Zeichen:1
What can i do?
my external FQDN Points to my Session Broker´s IP.