My shared webhosting is providing ssh access (with no root privileges) and no plugin to automate Letsencrypt certificate request, installation and renewal so, the only option is to do all the process manually through cPanel.
My question is: can I automate the whole process using a Letsencrypt client (Certbot, Acme.sh ?) and a cronjob, so that my certificates can be requested/renewed and installed inside the ssl folder structure with no human intervention at all ?
Do not modify that ssl directory. It is not safe and won’t work.
You have to use the uapiSSL::install_ssl command to install certificates to a virtualhost.
One of the side effects of that API call is that it will create files in that ssl directory, but it does a whole bunch of other way more important things too (like actually installing the certificate).
Needs a bunch of tests I guess (Python is not my strong suit), but it's pretty neat and can handle being run locally or remotely from another server.
The other opportunity here is that it can pretty easily support the DNS challenge as well (most people use cPanel-allocated nameservers when using cPanel), so it could reasonably support wildcards totally non-interactively.