Free SSL on Windows by Let’s Encrypt

  1. Important notesThis procedure follows the current Certbot implementation for Windows, in particular the fact that it installs as a system component, and requires administrative privileges. These instructions will be updated when a future version of Certbot switches to a different installation method. No installers for HTTP servers are supported for now (Certbot for Windows can currently obtain your certificate from Let’s Encrypt, but not install it into your web server application).
  2. Specific Windows system requirements and user knowledge requirements
    • The user needs to be familiar with the command-line interface (CLI), because Certbot is a pure CLI program.
    • The user must use an account with administrative privileges to install and run Certbot.
    • PowerShell and CMD.EXE are supported; both need to be started with elevated privileges before invoking Certbot.
    • Path C:\Certbot must be writable by the current user.
  3. Installation instructions
    1. Connect to the server.
    2. Connect locally or remotely (using Remote Desktop) to the server using an account that has administrative privileges for this machine.
    3. Install Certbot.
    4. Download the latest version of the Certbot installer for Windows at
    5. Run the installer and follow the wizard. The installer will propose a default installation directory, C:\Program Files(x86), that can be customized.)
    6. To start a shell for Certbot, select the Start menu, enter cmd (to run CMD.EXE) or powershell (to run PowerShell), and click on “Run as administrator” in the contextual menu that shows up above.
    7. Run Certbot as a shell command.
    To run a command on Certbot, enter the name certbot in the shell, followed by the command and its parameters. For instance, to display the inline help, run:C:\WINDOWS\system32> certbot –help
  4. Test automatic renewalThe Certbot installation on your system comes with a pre-installed Scheduled Task that will renew your certificates automatically before they expire. You will not need to run Certbot again, unless you change your configuration. You can test automatic renewal for your certificates by running the commandC:\WINDOWS\system32> certbot renew –dry-runIf you needed to stop your webserver to run Certbot (for example, if you used the standalone authenticator on a machine where port 80 is normally in use), you’ll want to edit the built-in command to add the --pre-hook and --post-hook flags to stop and start your webserver automatically. For example, if your webserver is Apache 2.4, add the following to the certbot renew command:-pre-hook “net stop Apache2.4” –post-hook “net start Apache2.4”
  5. Confirm that Certbot workedTo confirm that your site is set up properly, visit in your browser and look for the lock icon in the URL bar.
  6. Note for Windows Apache or Nginx usersAs described in section 5 above, Certbot for Windows currently cannot install the certificate in Apache or Nginx for you. As of the most recent release, you will have to edit your web server application’s configuration to install the certificate yourself after Certbot has obtained it. If this limitation is acceptable to you, please start from the beginning of this document to learn more about installing and using Certbot on Windows.

Choose how you’d like to run Certbot

Are you ok with temporarily stopping your website?
Yes, my web server is not currently running on this machine.
Stop your webserver, then run this command to get a certificate. Certbot will temporarily spin up a webserver on your machine.
C:\WINDOWS\system32> certbot certonly --standalone

No, I need to keep my web server running.
If you have a webserver that’s already using port 80 and don’t want to stop it while Certbot runs, run this command and follow the instructions in the terminal.
C:\WINDOWS\system32> certbot certonly --webroot

Important Note:
To use the webroot plugin, your server must be configured to serve files from hidden directories. If /.well-known is treated specially by your webserver configuration, you might need to modify the configuration to ensure that files inside /.well-known/acme-challenge are served by the webserver.

For Wildcard (*) to work you need to create an * entry in A record in your website DNS.

Meaning the SSL will work in both top and any subdomain.

As admin, run
certbot certonly --manual

Was this helpful?

0 / 0