installer_base.lib.php sets wrong $acme_cert_dir
## Summary
<!-- What is happening and what is wrong with that? -->
Running ispconfig_update.sh on Debian 12 with acme.sh as LE client. When creating certificate it shows
Checking / creating certificate for <myFQDN>
Using certificate path /etc/letsencrypt/live/<myFQDN>
Host has acme.sh as LE client, so no /etc/letsencrypt directory exists.
## Steps to reproduce
1. ispconfig_update.sh --force
## Correct behaviour
It should choose $acme_cert_dir based on what LE client is installed.
## Environment
Debian 12.6
ISPConfig 3.2.12
# php -v
PHP 8.2.20 (cli) (built: Jun 17 2024 13:33:14) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.20, Copyright (c) Zend Technologies
with Zend OPcache v8.2.20, Copyright (c), by Zend Technologies
## Proposed fix
The code part starts at line number 3032 in file ispconfig3_install/install/lib/installer_base.lib.php
```
// Request for certs if no LE SSL folder for server fqdn exist
swriteln('Checking / creating certificate for ' . $hostname);
$acme_cert_dir = '/usr/local/ispconfig/server/scripts/' . $hostname;
$check_acme_file = $acme_cert_dir . '/' . $hostname . '.cer';
if(!@is_dir($acme_cert_dir)) {
$acme_cert_dir = '/root/.acme.sh/' . $hostname;
$check_acme_file = $acme_cert_dir . '/' . $hostname . '.cer';
if(!@is_dir($acme_cert_dir)) {
$acme_cert_dir = '/etc/letsencrypt/live/' . $hostname;
$check_acme_file = $acme_cert_dir . '/cert.pem';
}
}
swriteln('Using certificate path ' . $acme_cert_dir);
```
That sets $acme_cert_dir to /etc/letsencrypt if directories /root/.acme.sh/$(hostname -f) and
/usr/local/ispconfig/server/scripts/$(hostname -f) do not exist. I think that logic is wrong,
it should be set based on what LE client is used.
## References
https://forum.howtoforge.com/threads/ispconfig_update-not-creating-new-certificate.92704/#post-458653
issue