Automate Certificates Dokumentation
Ziele, Agent, Webhooks
Ein Ziel ist ein Ort, an dem ein Zertifikat installiert wird. Automate Certificates kann außerdem nach Zertifikaten scannen, die Sie noch nicht verwalten, und Ereignisse an Ihre eigenen Tools senden.
Zieltypen
- Azure: virtuelle Maschine, SQL, App Service, Key Vault, Application Gateway und Front Door.
- AWS: ACM, CloudFront, Load Balancer und RDS.
- Google Cloud: virtuelle Maschine, HTTPS-Load-Balancer, Cloud SQL und Cloud Run.
- Datenbanken: PostgreSQL, MySQL, MongoDB und Redis.
- Weitere: Cloudflare, SSH-Hosts und eine benutzerdefinierte API.
Die Tarife Business und MSP decken alle 21 Zieltypen ab. Team deckt 5 Ziele ab.
Benutzerdefinierte API-Ziele
Der Endpunkt muss eine https://-URL sein. Ein einfacher http://-Endpunkt wird abgelehnt, weil die Anfrage den privaten Schlüssel enthält.
Linux-Agent
Der Agent ist ein kleiner Python-3-Dienst für einen Linux-Host. Automate Certificates überträgt das Zertifikat per https und nur mit dem Agent-Schlüssel an ihn. Wohin die Dateien kommen und wie der Dienst neu lädt, wird bei der Installation auf dem Host festgelegt und nie aus einer Anfrage übernommen. Der Installer benötigt systemd.
- Erzeugen Sie einen langen zufälligen Schlüssel, zum Beispiel mit
openssl rand -hex 32. Er muss mindestens 32 Zeichen lang sein. - Laden Sie den Installer herunter und führen Sie ihn auf dem Host als root aus, mit dem Schlüssel und den Pfaden für Ihren Dienst.
- Legen Sie in Automate Certificates ein Ziel mit der Agent-URL (
https://<host>:8443) und demselben Schlüssel an.
curl -fsSL https://api.automate-certificates.com/v1/agent/install/linux -o install-agent.sh
sudo CERTAI_AGENT_KEY="$(openssl rand -hex 32)" \
CERTAI_CERT_PATH=/etc/nginx/tls/site.crt \
CERTAI_KEY_PATH=/etc/nginx/tls/site.key \
CERTAI_RELOAD_COMMAND="systemctl reload nginx" \
bash install-agent.shGeben Sie den Schlüssel einmal aus und speichern Sie ihn; das Ziel benötigt denselben Wert. Der Installer schreibt eine nur für root lesbare Konfigurationsdatei unter /etc/automate-certificates/agent.json und startet die systemd-Unit automate-certificates-agent. Der Agent antwortet nur per https und gibt auf jede Anfrage ohne den richtigen Schlüssel 401 zurück. Er stellt https mit dem Zertifikat unter CERTAI_CERT_PATH (oder CERTAI_TLS_CERT und CERTAI_TLS_KEY) bereit, daher muss diese Datei vor der Installation existieren. Der Standardport ist 8443 (CERTAI_PORT).
Windows-Agent
Der Windows-Agent ist ein PowerShell-Dienst für einen Windows-Host. Automate Certificates überträgt Zertifikate per https und nur mit dem Agent-Schlüssel an ihn. Wohin die Dateien kommen und was danach ausgeführt wird, wird bei der Installation auf dem Host festgelegt und nie aus einer Anfrage übernommen. Der Installer benötigt PowerShell 7.4 oder neuer (pwsh) und muss als Administrator ausgeführt werden.
- Erzeugen Sie einen Schlüssel mit mindestens 32 Zeichen, zum Beispiel mit dem PowerShell-Befehl im Block unten.
- Laden Sie den Installer herunter und führen Sie ihn als Administrator aus, mit dem Schlüssel und den Pfaden für Ihren Dienst.
- Erlauben Sie in der Windows-Firewall eingehenden TCP-Port 8443 von Automate Certificates. Der Installer öffnet ihn nicht.
- Legen Sie in Automate Certificates ein Ziel mit der Agent-URL (
https://<host>:8443) und demselben Schlüssel an.
Invoke-WebRequest https://api.automate-certificates.com/v1/agent/install/windows -OutFile install-agent.ps1
$env:CERTAI_AGENT_KEY = [Convert]::ToHexString([Security.Cryptography.RandomNumberGenerator]::GetBytes(32))
$env:CERTAI_CERT_PATH = 'C:\certs\site.crt'; $env:CERTAI_KEY_PATH = 'C:\certs\site.key'
$env:CERTAI_CERT_STORE = 'My'; $env:CERTAI_RELOAD_COMMAND = '& C:\scripts\bind-certificate.ps1'
pwsh -NoProfile -ExecutionPolicy Bypass -File install-agent.ps1Speichern Sie den Schlüssel; das Ziel benötigt denselben Wert. Der Installer registriert den Agent als geplante Aufgabe namens AutomateCertificatesAgent, die als SYSTEM läuft, und legt seine Konfiguration unter C:\ProgramData\AutomateCertificates ab. Der Agent antwortet nur per https und gibt auf jede Anfrage ohne den richtigen Schlüssel 401 zurück. Die Installer-Einstellungen sind:
| Einstellung | Was sie bewirkt |
|---|---|
CERTAI_AGENT_KEY | Erforderlich. Mindestens 32 Zeichen. Das Ziel benötigt denselben Schlüssel. |
CERTAI_CERT_PATH, CERTAI_KEY_PATH | Wohin jedes bereitgestellte Zertifikat und jeder Schlüssel als PEM geschrieben wird. Der Standardordner ist C:\ProgramData\AutomateCertificates\certs. |
CERTAI_CERT_STORE | Ein LocalMachine-Zertifikatspeicher, etwa My, in den jedes Zertifikat zusätzlich importiert wird. |
CERTAI_RELOAD_COMMAND | PowerShell, das nach jeder Bereitstellung läuft, wobei CERTAI_CERT_PATH, CERTAI_KEY_PATH und CERTAI_THUMBPRINT gesetzt sind, zum Beispiel um das neue Zertifikat in IIS zu binden. Ein Exitcode ungleich null lässt die Bereitstellung fehlschlagen. |
CERTAI_PORT | Der Port, auf dem der Agent lauscht. Der Standard ist 8443. |
CERTAI_TLS_CERT, CERTAI_TLS_KEY | Das eigene https-Zertifikat des Agents. Standardmäßig verwendet er das von ihm verwaltete Zertifikat samt Schlüssel; diese müssen bereits als PEM existieren und für den Hostnamen des Rechners gültig sein. Eine Zertifikatsdatei, die auch ihren Schlüssel enthält, braucht keine Schlüsseldatei. |
Schlüsseldateien sind bei jeder Bereitstellung immer nur für SYSTEM und Administratoren lesbar. Ein Dienst, der seinen Schlüssel lesen muss, erhält den Zugriff im Reload-Befehl, zum Beispiel:
icacls "C:\certs\mongo.pem" /grant "NT SERVICE\MongoDB:R"; Restart-Service MongoDBLäuft das verwaltete Zertifikat ab, kann Automate Certificates den Agent nicht mehr erreichen. Um das zu vermeiden, verweisen Sie CERTAI_TLS_CERT und CERTAI_TLS_KEY auf ein separates, langlebiges Zertifikat. Um den Port zu öffnen, gibt der Installer diese Regel zur Ausführung aus:
New-NetFirewallRule -DisplayName 'Automate Certificates agent' -Direction Inbound -Protocol TCP -LocalPort 8443 -Action AllowDiscovery
Scans finden Zertifikate, die in Ihrem Bestand fehlen: Azure-Tenant-Scans, AWS- und GCP-Scans sowie Netzwerk-Scans öffentlicher Domains. Scans zählen auf das tägliche Scan-Limit Ihres Tarifs, und das Starten eines Scans erfordert einen Admin.
Webhooks
Fügen Sie auf der Seite Alerts einen Webhook hinzu, um Ereignisse an Ihre eigenen Tools zu senden. Zu den Ereignissen gehören cert.issued, cert.expiring, cert.issue_failed, cert.renew_failed, cert.renewal_dns_required, deployment.success und deployment.failed. Jede Anfrage ist signiert: Der Header X-Automate-Certificates-Signature enthält sha256= und einen HMAC des Bodys, gebildet mit dem Secret, das beim Anlegen des Webhooks einmal angezeigt wird.
MCP
MCP-Tools lassen sich noch nicht aus dem Produkt installieren und sind daher heute nicht Teil des Produkts.