This page walks through installing a free ACME SSL certificate on the three most common server setups: Apache or NGINX on Linux, and IIS on Windows Server. Each guide covers installing the ACME client, requesting and installing the certificate with your ACME Directory URL and EAB (External Account Binding) credentials, and confirming automatic re-issuance is configured. Use the navigation above to jump straight to your server type.

Last updated: September 2026

How to Install an ACME SSL Certificate on Apache or NGINX (Certbot)

Prerequisites

  • Apache or NGINX web server installed and running
  • Root or sudo access
  • Domain name pointing to your server (A/AAAA DNS records)
  • ACME Directory URL
  • ACME Credentials:
    • EAB Key ID
    • EAB HMAC Key

Step 1: Install Certbot

For Debian/Ubuntu Systems

  1. Update your package list:
    sudo apt update
  2. Install Certbot with the appropriate plugin for your web server:

    Apache:

    sudo apt install certbot python3-certbot-apache

    NGINX:

    sudo apt install certbot python3-certbot-nginx

For Red Hat / CentOS / Fedora Systems

Using dnf/yum:

  1. Enable the EPEL repository:
    sudo dnf install epel-release
  2. Install Certbot with the appropriate plugin for your web server:

    Apache:

    sudo dnf install certbot python3-certbot-apache

    NGINX:

    sudo dnf install certbot python3-certbot-nginx

Step 2: Obtain and Install Certificate

For Apache

sudo certbot --apache --non-interactive --agree-tos \
  --server <acme-directory> \
  --email <your-email> \
  --eab-kid <your-eab-kid> \
  --eab-hmac-key <your-hmac-key> \
  --domain <your-domain> \
  --cert-name <your-certificate-name>

For NGINX

sudo certbot --nginx --non-interactive --agree-tos \
  --server <acme-directory> \
  --email <your-email> \
  --eab-kid <your-eab-kid> \
  --eab-hmac-key <your-hmac-key> \
  --domain <your-domain> \
  --cert-name <your-certificate-name>

Step 3: Verification

After the command completes successfully, verify that your certificate is installed and working:

Automatic Re-issuance

Certbot automatically configures a cron job or systemd timer to reissue your certificate before it expires. No manual intervention or additional configuration is required.

Congratulations! You have successfully installed your ACME SSL certificate on Apache or NGINX. With automatic re-issuance enabled, your website will maintain continuous and uninterrupted HTTPS protection.

How to Install an ACME SSL Certificate on Apache or NGINX (acme.sh)

Prerequisites

  • Apache or NGINX web server installed and running
  • Root or sudo access
  • Domain name pointing to your server (A/AAAA DNS records)
  • ACME Directory URL
  • ACME Credentials:
    • EAB Key ID
    • EAB HMAC Key

Step 1: Install acme.sh

Install acme.sh from web:

sudo curl https://get.acme.sh

Step 2: Obtain Certificate

Register ACME Account

sudo acme.sh --register-account \
  --server <acme-directory> \
  --eab-kid <your-eab-kid> \
  --eab-hmac-key <your-hmac-key>

Command to Issue Certificate with Apache

sudo acme.sh --issue \
  --server <acme-directory> \
  --apache \
  -d <your-domain>

Command to Issue Certificate with NGINX

sudo acme.sh --issue \
  --server <acme-directory> \
  --nginx \
  -d <your-domain>

Step 3: Install Certificate

Apache Example

sudo acme.sh --install-cert -d example.com \
  --cert-file       /path/to/certfile/in/apache/cert.pem \
  --key-file        /path/to/keyfile/in/apache/key.pem \
  --fullchain-file  /path/to/fullchain/certfile/apache/fullchain.pem \
  --reloadcmd       "service apache2 force-reload"

Nginx Example

sudo acme.sh --install-cert -d example.com \
  --key-file        /path/to/keyfile/in/nginx/key.pem \
  --fullchain-file  /path/to/fullchain/nginx/cert.pem \
  --reloadcmd       "service nginx force-reload"

Step 4: Verification

After the command completes successfully, verify that your certificate is installed and working:

Automatic Re-issuance

acme.sh automatically configures a cron job or systemd timer to reissue your certificate before it expires. No manual intervention or additional configuration is required.

Congratulations! You have successfully installed your ACME SSL certificate on Apache or NGINX. With automatic re-issuance enabled, your website will maintain continuous and uninterrupted HTTPS protection.

How to Install an ACME SSL Certificate on Windows IIS (Win-ACME)

Prerequisites

  • IIS binding configured for your domain on port 80
  • Administrative access to the Windows Server (typically via Remote Desktop)
  • Domain name pointing to your server (A/AAAA DNS records)
  • ACME Directory URL
  • ACME Credentials:
    • EAB Key ID
    • EAB HMAC Key

Step 1: Install Win-ACME

  1. Download the latest version of Win-ACME from the official website: https://www.win-acme.com/
  2. Extract the zip file to the following folder: C:\Program Files\Win-ACME
  3. Run the program by double-clicking wacs.exe to confirm it launches successfully.

Step 2: Obtain and Install Certificate

Open PowerShell and run:

C:\Program Files\Win-ACME\wacs.exe --source iis --host <yourdomain.com> --certificatestore My --installation iis --acl-fullcontrol IIS_IUSRS,SYSTEM,Administrators --eab-key-identifier <your-eab-kid> --eab-key <your-hmac-key> --eab-algorithm HS256 --baseuri <acme-directory> --accepttos

Step 3: Verification

After the command completes successfully, verify that your certificate is installed and working:

Automatic Re-issuance

Win-ACME automatically configures a scheduled task to reissue your certificate before it expires. No manual intervention or additional configuration is required.

To confirm the scheduled re-issuance, run:

C:\Program Files\Win-ACME\wacs.exe --list --baseuri <acme-directory>
Congratulations! You have successfully installed your ACME SSL certificate on Windows IIS. With automatic re-issuance enabled, your website will maintain continuous and uninterrupted HTTPS protection.

Official Links & Documentation for ACME Clients

For the most up-to-date information, installation options, advanced usage, and troubleshooting, refer to the official project pages below.

Certbot

EFF's popular ACME client. Excellent Apache & NGINX plugins and automatic renewal.

Official Website · Documentation · GitHub Repository

acme.sh

Pure shell script ACME client. Lightweight, dependency-free, supports many CAs and DNS providers.

GitHub Repository · Official Wiki · Installation Guide

Win-ACME

Simple yet powerful ACMEv2 client for Windows, optimized for IIS and scheduled renewals.

Official Website · Getting Started · GitHub Repository