CertCentral managed automation supports the most popular web server applications out of the box.
CertCentral also provides the flexibility to extend certificate management for additional applications not supported natively by allowing configuration of third party ACME clients via the "custom application" option.
To enable managed automation for a custom application, follow these steps:
Custom automations still require that a DigiCert ACME automation agent be installed and activated on the local certificate host.
CertCentral managed automation works with any third-party client that supports the industry standard ACME protocol.
Follow the software provider's guidelines to install and configure your preferred third-party ACME client on the certificate host.
CertCentral requires a shell script on the certificate host to invoke the third-party ACME client. During an automation event, the DigiCert agent calls the shell script to invoke the client, which in turn procures and installs the certificate.
The shell script must contain the basic automation commands for the third-party ACME client. Command syntax will vary depending on which third-party ACME client is used. Check the software provider's guidelines to learn more.
Below are examples of shell scripts used to procure DigiCert certificates via third-party clients EFF Certbot (Linux) and Win-ACME (Windows):
directoryuri=$1
host=$2
emailaddress=$3
eabkeyidentifier=$5
eabkeyhmac=$6
process_path=/usr/bin/apachectl
server_root=/etc/httpd
config_root=/etc/httpd/config
procCmdLine="/usr/bin/apachectl start"
acmeConfigDirectory="/etc/letsencrypt/"
certbot --server $directoryuri --config-dir $acmeConfigDirectory --eab-kid $eabkeyidentifier --eab-hmac-key $eabkeyhmac --installer apache -m $emailaddress --force-renew --agree-tos --no-redirect --expand -d $host --no-verify-ssl --no-autorenew --pre-hook "$process_path stop" --post-hook $procCmdLine -n --apache-server-root $server_root --apache-vhost-root $config_root
returnCode=$?
echo "The command exit status : ${returnCode}"
exit $returnCode
set SERVERURL=%1
set SANS=%2
set EMAIL=%3
set KEYALGO=%4
set EABKEY=%5
set EABHMAC=%6
set VALIDATIONMODE=--validation selfhosting
"wacs.exe" --baseuri %SERVERURL% --eab-key-identifier=%EABKEY% --eab-key=%EABHMAC% --target manual --host %SANS% --emailaddress %EMAIL% --force --accepttos --notaskscheduler %VALIDATIONMODE% --csr %KEYALGO% --store centralssl --centralsslstore ./certs
set returnCode=%errorlevel%
EXIT /B %returnCode%
Variable definitions at the top of these shell scripts read in the required ACME arguments:
Commands used in the shell script:
rm -rf
or rmdir
The shell script filename:
.bat
or .sh
.Use the CertCentral Manage automation menu to complete the configuration for your custom application:
In your CertCentral account, in the left main menu, go to Automation > Manage automation.
From the Manage automation view, select the Name of the local ACME agent running on the same certificate host as the custom application.
In the agent configuration panel on the right, move down to the Configure IP/Port section.
Locate the IP address and Port number for the custom application. Select Custom as the application name.
In the Client command path field, provide the full directory path for the shell script that will invoke the third-party ACME client.
For example:
G:\certcentral\agent\custom_automation_1.bat
/home/certcentral/agent/custom_automation_1.sh
In the Client command arguments field, specify the general ACME arguments to use.
For example:
{acmeDirectoryUrl} {hosts} {email} {key} {extActKid} {extActHmac}
Note that:
Explanation of ACME arguments supported by CertCentral managed automation:
{acmeDirectoryUrl}
– ACME directory URL settings.{hosts}
– Certificate host details.{email}
– Email address for notifications.{key}
– Key algorithm (RSA or ECC).{extActKid}
– External account key identifier used in the URL.{extActHmac}
– HMAC key for signing the response.Select Save to put the updated automation settings into effect.
After setting up the custom application, you can manage certificate automations for it in the same way as other managed applications.