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
- Update your package list:
sudo apt update
- 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:
- Enable the EPEL repository:
sudo dnf install epel-release
- 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:
- Visit
https://yourdomain.comand check for the padlock - Check that the certificate details show the correct domain and expiration date
- Use our Free Online SSL Connection Checker: https://www.nethub.com.hk/ssl-certificates/ssl-connection-checker/
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.
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:
- Visit
https://yourdomain.comand check for the padlock - Check that the certificate details show the correct domain and expiration date
- Use our Free Online SSL Connection Checker: https://www.nethub.com.hk/ssl-certificates/ssl-connection-checker/
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.
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
- Download the latest version of Win-ACME from the official website: https://www.win-acme.com/
- Extract the zip file to the following folder:
C:\Program Files\Win-ACME - Run the program by double-clicking
wacs.exeto 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:
- Visit
https://yourdomain.comand check for the padlock - Use our Free Online SSL Certificate Checker: https://www.nethub.com.hk/ssl-certificates/ssl-certificate-checker/
- You can also verify the HTTPS binding in IIS Manager under Server Manager → Tools → IIS Manager → Sites → [Your Site] → Bindings
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>
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.
acme.sh
Pure shell script ACME client. Lightweight, dependency-free, supports many CAs and DNS providers.
Win-ACME
Simple yet powerful ACMEv2 client for Windows, optimized for IIS and scheduled renewals.
