Let’s Encrypt is a free SSL/TLS certificate provider, with automated certificate issuance and renewal tools for Linux and Windows. You can use it to automatically issue and renew SSL certificates on your web servers. This guide shows you how to correctly setup Let’s Encrypt for Microsoft Window’s Remote Desktop Services and IIS using freely available tools.
Let’s Encrypt is a great option for SSL/TLS Certificates, as the certificates can be renewed automatically (and it’s totally free!). I worked out this installation method after seeing the price of our upcoming Wildcard SSL Certificate renewal – I quickly realised the increased setup time would be quickly offset by the reduced certificate price.
I’ve been very busy since my last post, I became a Sophos certified Security Architect (Woo!), and because they’re so great they gave me some licenses to set up a virtual XG Firewall in my lab. One of the cool things it does is SSL Inspection, whilst this isn’t a new thing, it is easier to configure than a FirePower module on a Cisco 5506-X. Sophos UTM now has support to request certificates from Let's Encrypt. This new functionality allows administrators to create free SSL Certificates on the UTM for the WAF, WebAdmin and other UTM services. The following sections are covered: Create a Let's Encrypt Certificate. Let's Encrypt was created to provide free and easy-to-use TLS and SSL certificates, but the organization has experienced some missteps lately.
What you need
- Let's Encrypt is a free, automated, and open certificate authority brought to you by the nonprofit Internet Security Research Group (ISRG). 548 Market St, PMB 57274, San Francisco, CA, USA.
- May 04, 2018 Does anyone know if it’s possible to set up a Let’s Encrypt cert for use with Sophos firewall appliances? Sophos UTM/XG Firewall Appliances.
- Microsoft Remote Desktop Services Server
- Public-facing access to IIS Server Port 80 (including public DNS records)
- My free Powershell script to install the certificates in RDS
I’ve tested this process on Windows Server 2012 R2, with all RDS Role Services housed on the one server. You will need to modify these instructions and the script if you have split your role services amongst multiple servers.
Setup Instructions
- Download Let’s Encrypt Windows Simple and extract the files to C:Program FilesLets Encrypt
- Download my Powershell script and save it as C:Program FilesLets EncryptRDS_INSTALL_CERT.ps1
- Run LetsEncrypt.exe
- Enter your email address
- Accept the terms and conditions
- Enter “N” to create a new certificate
- Select Option 1 for “Single binding of an IIS site”
- Select your IIS site from the list
- Select the “HTTP-01” option: “Create temporary application in IIS”
- After the certificate has been created, don’t let it create the auto-renewal scheduled task (we’ll do this later)
If all goes well, you should now have a new SSL Certificate installed in your IIS site. You can confirm this by opening your RDP site in a browser and checking that the SSL Certificate has been issued by Let’s Encrypt.
There should also be a series of certificate files saved in C:ProgramDataletsencrypt-win-simplehttpsacme-v01.api.letsencrypt.org
However, if you open Server Manager and navigate to Remote Desktop Services > Deployment Properties, you’ll see the four role services don’t have this new certificate.
Our job now is to install the certificates into RDS. You could do so using the “Select Existing Certificate” button, but you’ll need to do this manually every 60 days as the certificate comes up for renewal.
Configure Sophos Xg For API Access
Instead, we’re going to use Powershell.
If you run the Powershell script, you’ll need to provide just two parameters:
- -CertificateImport – The path to the PFX file generated by Let’s Encrypt (found in C:ProgramDataletsencrypt-win-simplehttpsacme-v01.api.letsencrypt.org)
- -RDCB – The FQDN of your server (the internal DNS name used by Active Directory, not any external alias you may have)
Running this script within 10 minutes of generating the original certificates should allow it to install successfully.
Sophos Xg Letsencrypt Ca
Sophos Xg Letsencrypt Api
You can check this from that same Deployment Properties windows in Server Manager. You can also try to access a Remote Resource and see which certificate it presents.
Automating the Renewal of Remote Desktop Certificates
All we need to do now is setup automatic renewal. Thankfully, this can be done with a simple batch script:
Edit this script to contain the full path to your PFX file, and then schedule it to run in Task Scheduler once per day. The renewal will only take place close to the 60-day expiry window, and when that happens the Powershell script will update the RDS certificates.
Monitoring the Certificate Renewal
No one likes lapsed certificates or certificate warnings. Prevent this by subscribing to a free SSL Expiry Checker, such as CertificateMonitor.org (or the host-it-yourself version).
That’s it! Hopefully these instructions have allowed you to install a Let’s Encrypt Free SSL Certificate in Microsoft’s Remote Desktop Server. If you have any tips, please post them in the comments below!