Auto SSL in ISPmanager 6
The built-in ISPmanager 6 module issues free certificates only from Let's Encrypt. The ACME server address can be changed with the LetsencryptAcmeUrl parameter in /usr/local/mgr5/etc/ispmgr.conf, but the panel does not support the external account binding (EAB) keys that Sectigo requires. So the working scheme for Auto SSL is: acme.sh on the same server issues the certificate, and you add it to the panel as "Existing".
Where to get the keys
- In the client area at 1host.kz/bill open the "Auto SSL (Sectigo ACME)" service (order it on the Auto SSL page).
- Click "Configure Now", enter the domains in "Single Domains" (
wwwand non-wwwcount as one domain); wildcards go in "Wildcard Domains". - In 5–30 seconds the card shows ACME account ID, EAB MAC ID, EAB MAC key, Server URL.
Below: Server URL is https://acme.sectigo.com/v2/DV, YOUR_EAB_KID is the EAB MAC ID, YOUR_EAB_HMAC_KEY is the EAB MAC key.
What you need
- Root SSH access to the ISPmanager 6 server.
- The site already exists in the panel, the domain points to the server, port 80 is open.
- The panel user that owns the site (
user1in the examples) and the site's document root: in ISPmanager it is usually/var/www/user1/data/www/example.kz. Check the exact path in the panel: "Sites" → site → "Root directory".
Issuing the certificate with acme.sh
Install acme.sh as root and register the account (once):
curl https://get.acme.sh | sh -s [email protected]
source ~/.bashrc
acme.sh --register-account --server https://acme.sectigo.com/v2/DV \
--eab-kid YOUR_EAB_KID --eab-hmac-key YOUR_EAB_HMAC_KEY
acme.sh --set-default-ca --server https://acme.sectigo.com/v2/DV
Issue the certificate via the site's document root:
acme.sh --issue -d example.kz -d www.example.kz \
-w /var/www/user1/data/www/example.kz
The files appear in ~/.acme.sh/example.kz_ecc/ (ECC keys are the default): fullchain.cer, example.kz.key, ca.cer. More on issuance modes in Auto SSL with acme.sh.
Adding the certificate to the panel
- In ISPmanager open "SSL certificates" → "Add a certificate" → type "Existing".
- "Username" — the site owner (
user1). - "SSL certificate" — the contents of
example.kz.cer(the domain certificate only, PEM format). - "SSL certificate key" — the contents of
example.kz.key. - "SSL certificate chain" — the contents of
ca.cer. - Save. Then "Sites" → select the site → "Edit" → enable the secure connection, pick the certificate you added and, if needed, HTTP-to-HTTPS redirection.
Print a file for copying with cat ~/.acme.sh/example.kz_ecc/example.kz.cer, etc. The panel keeps its own copy in /var/www/httpd-cert/user1/.
Automatic update after renewal
acme.sh renews the certificate about 30 days before expiry, but the panel will not know — it has its own copy. To avoid copying files by hand every two months, tell acme.sh where to put the renewed certificate and how to reload the web server:
ls /var/www/httpd-cert/user1/ # find the files of the certificate you added
acme.sh --install-cert -d example.kz \
--cert-file /var/www/httpd-cert/user1/example.kz.crt \
--key-file /var/www/httpd-cert/user1/example.kz.key \
--ca-file /var/www/httpd-cert/user1/example.kz.crtca \
--fullchain-file /var/www/httpd-cert/user1/example.kz.crt \
--reloadcmd "systemctl reload nginx; systemctl reload httpd || systemctl reload apache2"
TO VERIFY: the exact certificate file names in /var/www/httpd-cert/USERNAME/ (the panel names them NAME_NUMBER, e.g. example-crt_1) — use the ones you see in ls; the --fullchain-file path must match the file referenced by the site's nginx/Apache config.
The alternative without touching panel files is to paste the new contents into "SSL certificates" → certificate → "Edit" after each renewal. If in doubt, contact ONEHOST support: we will set up the automatic replacement for you.
Verification and renewal
Open the site over HTTPS and view the certificate in the browser: the issuer should be Sectigo. From the console:
echo | openssl s_client -connect example.kz:443 -servername example.kz 2>/dev/null \
| openssl x509 -noout -issuer -dates
acme.sh --list
Renewal is done by the daily acme.sh cron job (crontab -l | grep acme.sh), followed by --reloadcmd. To test the whole chain: acme.sh --renew -d example.kz --force, then openssl again — the "notAfter" date should move. In the panel itself an "Existing" certificate is marked as not auto-renewed — that is expected, acme.sh handles renewal. The Auto SSL subscription is renewed by an invoice once a year; while it is active, issuance and renewal are unlimited.