Skip to content

Plesk Setup

For servers managed with Plesk.

Use the built-in SSL/TLS tool if it supports custom ACME. Otherwise use SSH + acme.sh, then import the certificate into Plesk.

Option A: Plesk Supports Custom ACME

Enter:

  • Server URL
  • EAB MAC ID
  • EAB MAC key

Issue the certificate and enable HTTPS.

Open:

text
https://example.com

Option B: SSH + acme.sh

1. Set Variables

bash
export DOMAIN="example.com"
export EMAIL="[email protected]"
export WEBROOT="/var/www/vhosts/example.com/httpdocs"
export ACME_SERVER="your Server URL"
export EAB_KID="your EAB MAC ID"
export EAB_HMAC_KEY="your EAB MAC key"
export CERT_DIR="/var/www/vhosts/system/$DOMAIN/conf/12ssl"

Single-domain certificates should include example.com and www.example.com.

2. Install and Register

bash
curl https://get.acme.sh | sh
source ~/.bashrc 2>/dev/null || source ~/.zshrc 2>/dev/null || true

~/.acme.sh/acme.sh --register-account \
  --server "$ACME_SERVER" \
  --eab-kid "$EAB_KID" \
  --eab-hmac-key "$EAB_HMAC_KEY" \
  --accountemail "$EMAIL"

3. Issue the Certificate

Single domain, including the root domain and www:

bash
~/.acme.sh/acme.sh --issue \
  --server "$ACME_SERVER" \
  -d "$DOMAIN" \
  -d "www.$DOMAIN" \
  -w "$WEBROOT"

Multi-domain:

bash
~/.acme.sh/acme.sh --issue \
  --server "$ACME_SERVER" \
  -d example.com \
  -d www.example.com \
  -d example.net \
  -d shop.example.org \
  -w "$WEBROOT"

Wildcard, including the root domain and *.:

bash
export CF_Token="Cloudflare API Token"
export CF_Account_ID="Cloudflare Account ID"

~/.acme.sh/acme.sh --issue \
  --server "$ACME_SERVER" \
  --dns dns_cf \
  -d "$DOMAIN" \
  -d "*.$DOMAIN"

WARNING

Wildcard certificates require DNS validation and cannot use -w "$WEBROOT".

4. Install Certificate Files

bash
sudo mkdir -p "$CERT_DIR"

sudo ~/.acme.sh/acme.sh --install-cert -d "$DOMAIN" \
  --key-file "$CERT_DIR/privkey.pem" \
  --fullchain-file "$CERT_DIR/fullchain.pem" \
  --reloadcmd "plesk sbin nginxmng -r || systemctl reload nginx"

5. Import in Plesk

Open:

text
Websites & Domains -> example.com -> SSL/TLS Certificates

Upload:

  • Private key: privkey.pem
  • Certificate: fullchain.pem

Enable HTTPS for the domain.

6. Check

bash
curl -I "https://$DOMAIN"
~/.acme.sh/acme.sh --cron --home ~/.acme.sh