Start / Hilfe / Acmefyer

Hilfe

Acmefyer-Dokumentation

So installieren und nutzen Sie Acmefyer. Am Ende finden Sie eine Übersicht aller Einstellungen zum Nachschlagen.

Version 1.x

Überblick

Acmefyer besorgt TLS-Zertifikate für Ihre Server, erneuert sie rechtzeitig und spielt sie dort ein, wo sie gebraucht werden: im IIS, in Exchange, auf der FortiGate, in nginx oder Apache. Die Zertifikate kommen von Zertifizierungsstellen wie Let's Encrypt, die das ACME-Verfahren anbieten.

Das wird wichtiger: Öffentliche Zertifikate gelten bald nur noch wenige Wochen, ab März 2029 höchstens 47 Tage. Von Hand lässt sich das kaum noch erneuern. Acmefyer erledigt es automatisch.

Acmefyer besteht aus zwei Programmen:

  • acmefyer-server läuft auf einem Ihrer Server. Er spricht mit der Zertifizierungsstelle, merkt sich alle Zertifikate und erneuert sie. Bedient wird er im Browser.
  • acmefyer-agent läuft auf den Systemen, die ein Zertifikat bekommen sollen. Er holt sich neue Zertifikate selbst beim Server ab und spielt sie vor Ort ein. Auf den Zielsystemen muss dafür kein Port geöffnet werden, und der Server braucht keine Zugangsdaten zu ihnen.

Beide Programme sind einzelne Programmdateien für Windows und Linux, die nichts weiter brauchen.

Das Konsolenfenster des Servers: Zertifikate, Agenten und Zustand auf einen Blick
Das Konsolenfenster des Servers: Zertifikate, Agenten und Zustand auf einen Blick

Voraussetzungen

  • Ein Server mit Windows oder Linux (64 Bit) für acmefyer-server. Eine eigene VM reicht völlig.
  • Netzwerkverbindungen des Servers:
    • zur Zertifizierungsstelle, zum Beispiel Let's Encrypt (HTTPS, Port 443)
    • je nach Prüfverfahren: von außen erreichbar auf Port 80 (HTTP-01) oder Zugang zur Schnittstelle Ihres DNS-Anbieters (DNS-01), siehe Zertifikate anlegen
    • zu www.wedigo.net (HTTPS, Port 443) für Updates und die Lizenz
    • kommt der Server nur über einen Proxy ins Internet: siehe Internetzugang über einen Proxy
  • Agenten brauchen nur eine Verbindung zum Acmefyer-Server (mit HTTPS über Port 443 wie der Browser, sonst über den Agenten-Port, standardmäßig 8444). Ins Internet müssen sie nicht.
  • Ein Zertifikat für den Acmefyer-Server selbst, sobald Sie Agenten nutzen. Agenten verbinden sich nur über HTTPS, siehe HTTPS für den Server.

Installation

Legen Sie die Programmdatei in einen eigenen Ordner, zum Beispiel C:\Program Files\Acmefyer oder /opt/acmefyer. Starten Sie Acmefyer beim ersten Mal von Hand in einem Konsolenfenster in diesem Ordner:

Windows

cd "C:\Program Files\Acmefyer"
.\acmefyer-server.exe

Linux

cd /opt/acmefyer
./acmefyer-server

Beim ersten Start legt Acmefyer im Ordner die Datei config.yaml mit Ihren Einstellungen an, dazu die Datenbank acmefyer.db und den Ordner data.

Als Dienst einrichten

Damit Acmefyer dauerhaft läuft, auch nach einem Neustart des Servers, richten Sie es als Dienst ein. Dazu brauchen Sie Administratorrechte (unter Linux sudo). Rufen Sie die Befehle im Programmordner auf, dann nutzt der Dienst die config.yaml von dort.

Windows

.\acmefyer-server.exe service install
.\acmefyer-server.exe service start

Linux

sudo ./acmefyer-server service install
sudo ./acmefyer-server service start

Stürzt der Dienst einmal ab, startet ihn Windows von selbst neu.

Alternativ geht das im Konsolenfenster: Reiter Service (Taste 5), dann i zum Einrichten und s zum Starten. Auch dafür muss das Konsolenfenster mit Administratorrechten geöffnet sein.

Der Reiter Service im Konsolenfenster
Der Reiter Service im Konsolenfenster

Einrichtung

Erste Anmeldung

Beim ersten Start legt Acmefyer den Benutzer admin mit einem zufälligen Startpasswort an. Das Passwort wird nur einmal angezeigt: im Konsolenfenster auf dem Reiter Dashboard und im Protokoll. Bei der ersten Anmeldung vergeben Sie ein eigenes Passwort.

Die Oberfläche öffnen Sie auf dem Server im Browser unter http://127.0.0.1:443 (nach der Einrichtung von HTTPS unter https:// und dem Namen des Servers, ohne Port), oder Sie drücken im Konsolenfenster die Taste o. Sprache, Darstellung, *Passwort ändern* und, für Administratoren, die Einstellungen finden Sie im Benutzermenü oben rechts. Die Einstellungen sind in Abschnitte gegliedert: Software-Update und Lizenz, Weboberfläche, Server, HTTPS, Validierung, DNS-Server, Anmeldung und API, Admin-Konto, AD/LDAP, Agenten, Proxy und Protokoll (siehe Konfiguration im Browser). Die Konten bei den Zertifizierungsstellen (ACME-Konten) stehen unter Zugangsdaten.

Acmefyer erzeugt beim ersten Start außerdem einen Hauptschlüssel und speichert ihn in config.yaml (server.master_key). Damit sind alle Geheimnisse in der Datenbank verschlüsselt: Schlüssel der Zertifikate, Zugangsdaten für DNS-Anbieter, Passwörter für SSH und FortiGate. Ohne diesen Schlüssel ist die Datenbank wertlos. Heben Sie ihn bei einer Sicherung mit auf.

Zugriff von anderen Rechnern

Zunächst ist die Oberfläche nur auf dem Server selbst erreichbar. So kommt niemand ungewollt von außen darauf. Wenn Sie sie von Ihrem Arbeitsplatz aus öffnen möchten:

  • drücken Sie im Konsolenfenster die Taste l, oder
  • stellen Sie es im Browser unter Einstellungen → Weboberfläche ein, oder
  • tragen Sie in der Einstellung server.http_addr den Wert 0.0.0.0:443 ein.

Danach starten Sie den Dienst neu und geben den Port 443 in der Firewall des Servers frei. Agenten nutzen ihn mit, wenn das Zertifikat öffentlich vertrauenswürdig ist; sonst geben Sie für sie zusätzlich den Agenten-Port 8444 frei. Läuft auf dem Server schon ein Webserver auf Port 443 (etwa IIS), wählen Sie für Acmefyer einen anderen Port, zum Beispiel 0.0.0.0:8443. Unter Linux braucht ein Port unter 1024 Root-Rechte; als Dienst hat Acmefyer sie. Den Port ändern Sie im Browser unter Einstellungen → Weboberfläche, im Konsolenfenster auf dem Reiter Settings (Taste 6) oder in server.http_addr.

HTTPS für den Server

Solange kein Zertifikat eingetragen ist, ist die Oberfläche unverschlüsselt (HTTP). Für Ihren Browser im eigenen Netz mag das kurz reichen. Agenten brauchen es nicht, sie verbinden sich über den Agenten-Port verschlüsselt.

Am einfachsten besorgt Acmefyer das Zertifikat für sich selbst: Unter Einstellungen → HTTPS geben Sie den Namen ein, unter dem Sie den Server erreichen, zum Beispiel acme.example.com. Der Assistent legt das Zertifikat mit dem Deployment Acmefyer HTTPS Certificate an. Sobald es ausgestellt ist, legt Acmefyer die Dateien unter data/tls ab, trägt sie als server.tls_cert und server.tls_key ein und startet den Dienst neu; danach läuft die Oberfläche mit HTTPS. Läuft Acmefyer nicht als Dienst, starten Sie es selbst neu. Ist der Server von außen nicht erreichbar, wählen Sie DNS-01.

Das Deployment Acmefyer HTTPS Certificate lässt sich auch jedem anderen Zertifikat hinzufügen, etwa einem Platzhalter-Zertifikat, das den Namen des Servers abdeckt; unter Einstellungen → HTTPS geht das mit *Vorhandenes Zertifikat verwenden*. Jede Erneuerung übernimmt Acmefyer von selbst, ohne Neustart.

Ein eigenes Zertifikat tragen Sie stattdessen in server.tls_cert und server.tls_key ein (Pfade relativ zur config.yaml); auch dann nimmt Acmefyer erneuerte Dateien ohne Neustart. Alternativ stellen Sie einen Webserver mit HTTPS davor, zum Beispiel IIS oder nginx.

Internetzugang über einen Proxy

In vielen Firmennetzen kommt der Server nicht direkt ins Internet, sondern nur über einen Proxy. Dann brauchen die Lizenzprüfung, Updates, die Zertifizierungsstelle, die Schnittstelle Ihres DNS-Anbieters und Benachrichtigungen (Teams, Telegram, Webhooks) diesen Proxy.

Unter Windows übernimmt Acmefyer den Proxy des Servers von selbst: den systemweiten Proxy (netsh winhttp show proxy) und sonst den Proxy aus den Internetoptionen, jeweils mit seinen Ausnahmen. Eine automatische Konfiguration (PAC-Datei, automatische Erkennung) wird nicht übernommen. Welcher Proxy gilt und woher er kommt, zeigen das Protokoll und der Reiter Settings im Konsolenfenster. Nur wenn dort kein Proxy eingestellt ist oder Acmefyer einen anderen nutzen soll, tragen Sie ihn in Acmefyer ein. Am einfachsten im Browser unter Einstellungen → Proxy: Adresse, Passwort und Ausnahmen eintragen, mit *Verbindung zu www.wedigo.net testen* prüfen, speichern und mit *Jetzt neu starten* übernehmen (siehe Konfiguration im Browser). Im Konsolenfenster geht es so:

  1. Öffnen Sie im Konsolenfenster den Reiter Settings (Taste 6).
  2. Wählen Sie mit den Pfeiltasten Proxy URL, drücken Sie Enter, tippen Sie die Adresse ein, zum Beispiel http://10.10.75.1:8080, und drücken Sie wieder Enter. Braucht der Proxy eine Anmeldung: http://benutzer:passwort@10.10.75.1:8080. Das Passwort speichert Acmefyer verschlüsselt in der Datenbank, nicht in config.yaml.
  3. Unter Exceptions tragen Sie die Namen ein, die direkt erreicht werden, getrennt durch Kommas, zum Beispiel corp.example.com, webhook01.
  4. Mit t testen Sie die Verbindung zu www.wedigo.net mit den eingetragenen Werten. Klappt es nicht, sagt Acmefyer, woran es liegt und was hilft.
  5. Mit s speichern Sie. Danach starten Sie den Dienst neu (auf demselben Reiter mit R, wenn der Dienst läuft).

Oder Sie tragen es in config.yaml ein und starten den Dienst neu. Ein dort von Hand eingetragenes Passwort verschiebt Acmefyer beim nächsten Start in die Datenbank:

proxy:
  url: "http://10.10.75.1:8080"
  no_proxy: ["corp.example.com", "webhook01"]

Den Server selbst und alle privaten Adressen (10.x.x.x, 172.16.x.x bis 172.31.x.x, 192.168.x.x) erreicht Acmefyer immer direkt. Interne Ziele, die Sie mit Namen angeben, etwa die Adresse eines Webhooks im eigenen Netz, tragen Sie bei den Ausnahmen ein. Sonst schickt Acmefyer auch diese Anfragen an den Proxy. Eine Domain wie corp.example.com gilt für alle Namen darunter. E-Mail (SMTP), SSH und LDAP gehen nie über den Proxy.

Namen ohne Domain, die Windows direkt erreicht (<local> bei den Ausnahmen), übernimmt Acmefyer nicht: Tragen Sie solche Namen bei den Ausnahmen ein oder verwenden Sie den vollen Namen.

Welcher Proxy gilt: zuerst die Einstellung in Acmefyer (proxy.url), dann die Umgebungsvariablen HTTPS_PROXY und NO_PROXY, dann der systemweite Windows-Proxy, dann die Internetoptionen. Agenten nutzen keinen Proxy: Sie verbinden sich nur mit dem Acmefyer-Server und beachten auch HTTPS_PROXY nicht.

Der Reiter Settings im Konsolenfenster: Port, Proxy und Verbindungstest
Der Reiter Settings im Konsolenfenster: Port, Proxy und Verbindungstest

Konfiguration im Browser

Alles, was der Server aus der config.yaml liest, ändern Sie auch im Browser: Einstellungen im Benutzermenü (nur Administratoren). Der Dialog öffnet sich über der aktuellen Seite und gliedert die Werte links in Abschnitte: zuerst Software-Update und Lizenz, dann Weboberfläche (Port und Erreichbarkeit: nur dieser Rechner, alle Schnittstellen oder die eingetragene Adresse; Abmelden nach Inaktivität, wie in Spherifyer), Server, HTTPS, Validierung, DNS-Server, Anmeldung und API, Admin-Konto, AD/LDAP (mit Tests, siehe Benutzer und Rechte), Agenten, Proxy und Protokoll. Speichern unten im Dialog speichert den gezeigten Abschnitt. Gespeichert werden nur geänderte Werte; Kommentare und der Rest der Datei bleiben, wie sie sind. Ist ein Wert ungültig, sagt die Seite warum und speichert nichts. Passwörter und Tokens zeigt sie nie; ein leeres Feld behält den gespeicherten Wert. Das Proxy-Passwort landet verschlüsselt in der Datenbank, nicht in der config.yaml.

Die Änderungen gelten nach einem Neustart. Bis dahin markiert die Seite sie mit *nach Neustart*; läuft Acmefyer als Dienst, startet *Jetzt neu starten* ihn neu, und die Seite lädt danach von selbst. Werte aus Umgebungsvariablen zeigt sie mit dem Namen der Variablen und lässt sie nicht ändern. Nicht hier änderbar ist der Hauptschlüssel (server.master_key): Mit einem anderen wären alle Geheimnisse in der Datenbank unlesbar. Das Admin-Passwort ändern Sie unter *Passwort ändern*, die Lizenz im Abschnitt Software-Update und Lizenz, die Einstellungen eines Agenten in seiner agent.yaml.

Zertifikate anlegen

Neue Zertifikate legen Sie in der Oberfläche unter Domains mit Neue Domain an. Ein Assistent fragt Schritt für Schritt:

  1. Zertifizierungsstelle. Voreingestellt ist Let's Encrypt Staging. Das ist eine Testumgebung: Sie können dort alles gefahrlos ausprobieren, aber Browser und Geräte vertrauen diesen Zertifikaten nicht. Für echte Zertifikate wählen Sie Let's Encrypt Production oder eine andere Stelle. ZeroSSL und Google Trust brauchen zusätzlich die Zugangsdaten Ihres Kontos dort (EAB-Kennung und -Schlüssel). Dazu kommt die Konto-E-Mail: An diese Adresse schickt die Zertifizierungsstelle wichtige Hinweise.
  2. Domains. Der Hauptname, etwa www.example.com, und auf Wunsch weitere Namen im selben Zertifikat. Ein Platzhalter-Zertifikat (*.example.com) geht nur mit DNS-01; es enthält auch example.com selbst, das der Platzhalter nicht abdeckt. Namen, die der Platzhalter schon abdeckt, etwa www.example.com, lässt Acmefyer weg, weil die Zertifizierungsstelle sie sonst ablehnt. Was das Zertifikat enthalten wird, steht unter der Auswahl.
  3. Validierung. Das Prüfverfahren: Damit zeigen Sie der Zertifizierungsstelle, dass Ihnen der Name gehört.
  4. Zusammenfassung. Prüfen Sie Ihre Angaben und klicken Sie auf Zertifikat anlegen.

Ein Test-Zertifikat erkennen Sie in der Liste am Hinweis Staging. Wenn alles klappt, öffnen Sie das Zertifikat, wählen Bearbeiten und stellen eine echte Zertifizierungsstelle ein. Beim Speichern wird es gleich neu ausgestellt. Genauso ändern Sie später Namen, Prüfverfahren oder Zugangsdaten; das bisherige Zertifikat bleibt in Gebrauch, bis das neue da ist.

Prüfverfahren

  • HTTP-01 über den eingebauten Webserver: Die Zertifizierungsstelle ruft eine Adresse auf Port 80 ab. Acmefyer öffnet den Port nur für die Dauer der Prüfung. Der Name muss dafür aus dem Internet auf den Acmefyer-Server zeigen.
  • HTTP-01 über einen vorhandenen Webserver: Läuft auf Port 80 schon ein Webserver, legt Acmefyer die Prüfdatei in dessen Ordner ab, auf dem Server selbst oder über einen Agenten auf einem anderen Rechner.
  • DNS-01: Acmefyer legt kurz einen Eintrag in Ihrem DNS an. Dafür braucht es die Zugangsdaten zur Schnittstelle Ihres DNS-Anbieters, die Sie unter Zugangsdaten hinterlegen oder gleich im Assistenten eingeben (Auswahl Neue Zugangsdaten hier eingeben, nur als Admin). Im Assistenten eingegebene Zugangsdaten werden mit dem Zertifikat gespeichert und stehen danach auch für weitere Domains bereit. Acmefyer kennt rund 190 Anbieter. DNS-01 ist nötig für Platzhalter-Zertifikate und für Server, die von außen nicht erreichbar sind. Gespeicherte Zugangsdaten ändern Sie unter Zugangsdaten mit dem Stift: Die Werte werden nicht angezeigt; ein leerer Wert hinter KEY= behält den gespeicherten, ein neuer ersetzt ihn.
  • TLS-ALPN-01: Wie HTTP-01, aber über Port 443. Geht nur, wenn die Oberfläche nicht selbst auf Port 443 läuft (server.http_addr).
Die Zertifikate im Konsolenfenster, nach Zustand sortiert
Die Zertifikate im Konsolenfenster, nach Zustand sortiert

DNS im eigenen Netz

Beantwortet Ihr eigener DNS-Server die Zone anders als das Internet (typisch mit Active Directory), sieht Acmefyer den Prüfeintrag nicht und wartet vergeblich. Stellen Sie dann öffentliche DNS-Server ein: in der Oberfläche unter Einstellungen → DNS-Server (Vorschläge wie Cloudflare, Google Public DNS, Quad9 oder OpenDNS ankreuzen, eigene Adressen dazuschreiben, vor dem Speichern mit Testen prüfen, ob sie antworten), im Konsolenfenster auf dem Reiter DNS (Taste 4) oder in der Einstellung server.dns_resolvers. Die Änderung gilt sofort, ohne Neustart.

Öffentliche DNS-Server auswählen und testen
Öffentliche DNS-Server auswählen und testen

Projekte

Auf der Seite Domains fasst Neues Projekt Domains zusammen, etwa je Kunde oder je DNS-Konto. Ein Projekt kann DNS-Zugangsdaten tragen (Anbieter und gespeicherte Zugangsdaten, etwa das API-Token eines Hetzner-Projekts) sowie Vorgaben für neue Domains (CA, Konto-E-Mail). Eine Domain ordnen Sie in ihrem Formular einem Projekt zu; mit Zugangsdaten des Projekts verwendet sie dessen DNS-Zugangsdaten, und ändern Sie diese im Projekt, gilt das sofort für alle diese Domains. Löschen Sie ein Projekt, bleiben seine Domains erhalten, ohne Projekt und mit ihren bisherigen Zugangsdaten. Die Seite Domains zeigt die Domains nach Projekten, die ohne Projekt am Ende.

Erneuerung

Acmefyer prüft stündlich, welche Zertifikate bald ablaufen, und erneuert sie 30 Tage vorher. Klappt das nicht, versucht es Acmefyer später wieder, mit wachsendem Abstand. Von Hand erneuern Sie ein Zertifikat in der Oberfläche mit Erneuern oder im Konsolenfenster mit R.

Oben rechts in der Oberfläche zeigt ein Punkt den Zustand: grün, wenn alles in Ordnung ist, gelb, solange Zertifikate ausgestellt oder erneuert werden, rot, wenn bei einem Zertifikat ein Fehler aufgetreten ist. Ein Klick darauf zeigt die letzte und die nächste Prüfung, die Zahl der Zertifikate und die Agenten, die gerade verbunden sind. Die Schaltfläche ganz rechts (Jetzt prüfen, für Admins) startet die Prüfung sofort, statt auf die nächste volle Stunde zu warten.

Zertifikate verteilen

Ein neues Zertifikat nützt erst, wenn es auf dem Zielsystem ankommt. Dafür fügen Sie jedem Zertifikat ein oder mehrere Ziele hinzu. Nach jeder Erneuerung spielt Acmefyer das Zertifikat an allen Zielen neu ein. Schlägt ein Ziel fehl, versucht es Acmefyer nach 5 Minuten wieder, dann in wachsenden Abständen bis zu 6 Stunden.

Bei jedem Ziel wählen Sie, wer es ausführt: der Server oder ein Agent.

Auf dem Server laufen nur Ziele, die nichts auf fremden Systemen installieren:

  • Datei (PEM) und PFX: Das Zertifikat als Dateien in einen Ordner schreiben, auch auf eine Windows-Freigabe.
  • SSH: Die Dateien per SSH auf einen Linux-Server kopieren, auf Wunsch mit nginx oder Apache neu laden.
  • Webhook: Eine Adresse aufrufen, wenn es ein neues Zertifikat gibt.
  • Acmefyer HTTPS Certificate: Das Zertifikat für die Oberfläche dieses Servers verwenden, siehe HTTPS für den Server.

Über einen Agenten läuft alles, was etwas vor Ort einrichtet:

  • IIS: Zertifikat in Windows einspielen und an die Website binden.
  • Exchange: Das Zertifikat in Exchange importieren (ein schon importiertes wird nur wieder aktiviert) und für die gewählten Dienste aktivieren, vorgegeben IIS, IMAP und POP. SMTP nur auf Wunsch: Der Transport wählt sein Zertifikat nach dem Servernamen (etwa ex03.firma.local), den ein öffentliches Zertifikat nicht abdeckt. IMAP und POP wählen ihr Zertifikat nach Namen; der Agent stellt ihn auf einen Namen um, den das neue Zertifikat abdeckt (den bisherigen, wenn er passt, sonst den ersten Namen ohne Platzhalter oder den im Feld angegebenen), und startet beide Dienste neu. Danach prüft er, ob Port 443 das neue Zertifikat ausliefert; sonst aktiviert er für IIS wieder das vorige. Das vorige Zertifikat bleibt im Speicher, denn die Exchange-Back-End-Site (Port 444) nutzt es weiter. Exchange SE nimmt ECC-Zertifikate nur mit einer eigenen Einstellung (Override); geben Sie der Domain deshalb einen RSA-Schlüssel. In einer DAG richten Sie das Deployment für jeden Exchange-Server mit dessen Agent ein. Acmefyer rollt es dann nie auf allen gleichzeitig aus, sondern mit mindestens einer Stunde Abstand zwischen zwei Servern; die wartenden zeigen Wartet bis ….
  • Windows-Zertifikatsspeicher: Zertifikat in einen Speicher einspielen, zum Beispiel für RDP oder SQL Server.
  • nginx und Apache: Dateien schreiben und den Webserver neu laden.
  • Traefik: Dateien und eine eigene dynamische Konfigurationsdatei in das Verzeichnis des Datei-Providers von Traefik schreiben (providers.file.directory). Traefik lädt das Zertifikat von selbst; Acmefyer schreibt die Datei bei jeder Erneuerung neu, damit Traefik das neue Zertifikat bemerkt. Läuft Traefik im Container, geben Sie zusätzlich die Pfade an, unter denen Traefik die Dateien sieht. Bisherige Konfigurationsdatei ersetzen übernimmt ein Zertifikat, auf das schon eine Datei des Datei-Providers verweist (etwa eine tls.yml): Sobald die Datei von Acmefyer steht, wird die alte in *.replaced-by-acmefyer umbenannt, aber nur, wenn sie nichts als diese Zertifikatsdateien enthält. Der Scan des Agenten trägt das ein, wo es passt. Eine Datei in dem Verzeichnis, die nicht von Acmefyer stammt, wird nie überschrieben.
  • HAProxy: Die PEM-Datei für eine Zeile bind … ssl crt schreiben, Zertifikat und Schlüssel in einer Datei, sofern kein Schlüsselpfad angegeben ist, und HAProxy neu laden.
  • Apache Tomcat: Das Zertifikat als Java-Keystore schreiben (PKCS#12, bei .jks/.keystore-Dateien JKS) mit Passwort und Alias des Connectors aus server.xml, dann Tomcat neu starten.
  • MailStore Server: Das Zertifikat in den Windows-Zertifikatsspeicher importieren, in der Konfiguration von MailStore Server (MailStoreServer.json) und in den HTTP.sys-Bindungen eintragen und den Dienst neu starten. Startet MailStore damit nicht, nimmt der Agent alles zurück und MailStore läuft mit dem vorigen Zertifikat weiter; sonst entfernt er das vorige. Der Agent erledigt das selbst über die Windows-Schnittstellen, ohne PowerShell. Er läuft auf dem MailStore-Server.
  • PRTG Network Monitor: Zertifikat, Schlüssel und Kette als prtg.crt, prtg.key und root.pem in den Ordner cert der PRTG-Installation schreiben, so wie PRTG sie verlangt: mit Windows-Zeilenumbrüchen, root.pem mit den Zwischenzertifikaten und dem Stammzertifikat (soweit Windows es kennt). Danach startet der Agent den PRTG Core Server neu und, falls vorhanden, den Application Server der neuen Oberfläche (Port 1616), der dasselbe Zertifikat nutzt. Startet einer davon nicht, legt er die vorigen Dateien zurück und startet erneut. Vor dem ersten Austausch hebt er die Dateien auf, mit denen PRTG kam (*.before-acmefyer). Remote Probes brauchen dieselben Dateien: Der Scan erkennt sie und schlägt dasselbe Deployment mit dem Dienst PRTGProbeService vor; legen Sie es für jede Probe an. Das Zertifikat greift nur, wenn die PRTG-Weboberfläche auf HTTPS steht (Setup / Systemverwaltung / Benutzeroberfläche).
  • ScriptRunner: Das Zertifikat in den Windows-Zertifikatsspeicher importieren und die HTTP.sys-Bindung des HTTPS-Ports von ScriptRunner (meist 443) darauf umstellen. ScriptRunner selbst merkt sich nur, dass der Port HTTPS nutzt; das Zertifikat steckt allein in dieser Bindung. Der Agent prüft danach, ob der Port das neue Zertifikat ausliefert, und stellt die Bindung sonst zurück. Ein Neustart ist nicht nötig. Das vorige Zertifikat entfernt er, wenn keine Bindung es mehr nutzt. Einmal eingerichtet sein muss HTTPS in ScriptRunner (Set-SrxApiPort -UseSSL).
  • HTTP.sys-Bindung (Windows): Für Windows-Anwendungen, die HTTPS über HTTP.sys ohne IIS ausliefern (etwa ScannerVision oder Reporting Services): Das Zertifikat in den Windows-Zertifikatsspeicher importieren und die HTTP.sys-Bindung des Ports darauf umstellen, mit Hostname nur dessen SNI-Bindung; SNI-Bindungen anderer Sites am selben Port bleiben unberührt. Der Agent prüft, ob der Port das neue Zertifikat ausliefert, und stellt die Bindung sonst zurück; auf Wunsch startet er danach einen Dienst neu.
  • Spherifyer: Das Zertifikat für die Weboberfläche von Spherifyer (vSphere-Dashboard). Spherifyer braucht keinen Agenten: Es verbindet sich unter *Einstellungen → HTTPS* selbst mit Acmefyer, mit Adresse, Enroll-Token und Fingerabdruck von dieser Seite, und erscheint dann unter Agenten als „Spherifyer (Rechnername)“. Wählen Sie diesen Agenten für die Verteilung. Spherifyer installiert das Zertifikat und schaltet ohne Neustart auf HTTPS; es wird nie als veraltet markiert und nicht über Acmefyer aktualisiert, denn es aktualisiert sich selbst.
  • Gitea: Zertifikat und Schlüssel dort ablegen, wo Gitea sie liest (im Container auf seinem Volume, Besitzer wie die app.ini), auf Wunsch (Auswahl Gitea auf HTTPS umstellen, vorgegeben: Nein; der Agent lehnt die Umstellung ab, solange Gitea auf Port 80 läuft oder das Zertifikat seinen Namen nicht abdeckt) Gitea in der app.ini auf HTTPS umstellen und neu starten (docker restart gitea oder den Dienst). Klappt der Neustart nicht, legt der Agent die vorige app.ini zurück. Mit HTTPS-Port (der Scan schlägt 443 vor) zieht Gitea für HTTPS dorthin um, der bisherige Port leitet nur noch um, sodass alte http://-Links weiter funktionieren. Läuft Gitea mit docker compose, trägt der Agent den Port in die docker-compose.yml ein (vorher gesichert) und erstellt den Container neu. Danach prüft er, ob HTTPS antwortet, und nimmt sonst alles zurück. ROOT_URL muss auf einen Namen zeigen, den das Zertifikat abdeckt.
  • Dienst (lokal): Zertifikat und Schlüssel an feste Pfade schreiben und einen Befehl ausführen, zum Beispiel für Postfix, Dovecot, PostgreSQL, Proxmox oder Cockpit. Ohne Schlüsselpfad kommt der Schlüssel mit in die Zertifikatsdatei.
  • FortiGate: Zertifikat über die Schnittstelle der FortiGate einspielen. Der Agent läuft dafür am besten im selben Netz wie die Firewall.
  • Eigenes Skript: Einen beliebigen Befehl ausführen.

Passwörter und Schlüssel der Ziele speichert Acmefyer verschlüsselt. Ein Ziel ändern Sie auf der Seite der Domain mit dem Stift; Passwortfelder bleiben dabei leer und behalten ihren Wert, solange Sie nichts eingeben. Danach spielt Acmefyer das Zertifikat mit den neuen Einstellungen erneut ein.

In der Liste Domains klappt das Plus vor einer Domain ihre Ziele mit ihrem Zustand auf (ausgerollt, ausstehend, fehlgeschlagen; die Fehlermeldung zeigt der Mauszeiger). Das Dashboard listet ganz unten alle Ziele aller Domains, fehlgeschlagene zuerst. In der Spalte Status zeigt „Deployments 1/2“, wie viele davon ausgerollt sind; rot, sobald eines fehlgeschlagen ist. Mit dem Pfeil-Kreis (Erneut ausrollen) spielen Sie ein Ziel sofort erneut ein, etwa nachdem Sie die Ursache eines Fehlers behoben haben. Ziele, die auf dem System ihres Agenten installieren (IIS, nginx vor Ort, MailStore Server und andere), bleiben beim Bearbeiten an diesen Agenten gebunden; für ein anderes System legen Sie dort ein neues Ziel an.

Schneller von der Seite des Agenten: Der Agent findet die Anwendungen auf seinem System, die TLS ausliefern (siehe Erkannte Anwendungen). Passt eine zu einem Zertifikat dieses Servers, öffnet Deployment anlegen diese Seite mit Typ, Agent und Pfaden schon ausgefüllt. Der Vorschlag steht dann oben, der Agent ist der, der die Anwendung gefunden hat; die übrigen Ziele lassen sich darunter aufklappen. Hat der Scan keinen passenden Vorschlag (etwa für Gitea ohne TLS), öffnet Deployment wählen dieselbe Seite mit dem Agenten und allen Zielen; bei einer Anwendung ohne passende Domain wählen Sie eines der vorhandenen Zertifikate (Zertifikat wählen), auch wenn der Name in der Anwendung noch abweicht; ihn passen Sie dann dort an. Hat der Scan einen Vorschlag (etwa Gitea), öffnet sich das Deployment damit schon ausgefüllt. Das Plus daneben legt stattdessen eine neue Domain an und führt danach direkt auf dieselbe Seite. Auch ohne erkannte Anwendung wählen Sie auf der Seite des Agenten unter Deployments eine Domain und legen das Deployment für diesen Agenten an.

Agenten

Ein Agent ist ein kleines Programm auf dem Zielsystem. Er meldet sich regelmäßig beim Acmefyer-Server, holt sich neue Aufträge ab und führt sie aus. Die Verbindung geht immer vom Agenten zum Server, nie umgekehrt.

Die Agenten im Konsolenfenster
Die Agenten im Konsolenfenster

Hat die Oberfläche HTTPS mit einem öffentlich vertrauenswürdigen Zertifikat (etwa von Let's Encrypt), sprechen Agenten den Server wie der Browser über diesen Port an, in der Regel 443: Für Agenten und Browser genügt dann eine einzige Firewall-Regel. Die Oberfläche trägt diese Adresse unter Agenten in die agent.yaml, die Setuppakete und die Ferninstallation ein, sobald das Zertifikat passt.

Sonst sprechen Agenten den Server über einen eigenen Agenten-Port an (agent.listen_addr, Standard 8444), immer verschlüsselt: Das Zertifikat dafür stellt die eingebaute Agenten-CA des Servers aus, HTTPS für die Oberfläche ist dafür nicht nötig. Den Fingerabdruck dieser CA zeigt die Oberfläche unter Agenten. Mit ihm vertraut ein neuer Agent dem Server beim ersten Kontakt; danach kennt er die CA selbst. Agenten, die über den Agenten-Port eingerichtet wurden, laufen dort weiter, auch wenn die Oberfläche später HTTPS bekommt; wer sie auf 443 umstellen will, ändert server_url in ihrer agent.yaml (ohne :8444) und startet den Dienst neu. Ihre Identität behalten sie dabei.

So richten Sie einen Agenten ein:

  1. Tragen Sie auf dem Server einen geheimen Anmeldeschlüssel für Agenten ein, agent.enroll_token in config.yaml oder im Browser unter Einstellungen → Agenten, zum Beispiel eine lange Zufallszeichenfolge. Starten Sie den Dienst neu.
  2. Legen Sie auf dem Zielsystem die Programmdatei acmefyer-agent in einen Ordner und daneben eine Datei agent.yaml. Die Oberfläche zeigt sie unter Agenten fertig zum Kopieren:
agent:
  server_url: "https://acme.example.com:8444"
  enroll_token: "derselbe Schlüssel wie auf dem Server"
  server_ca_fingerprint: "sha256:…"
  1. Richten Sie den Agenten als Dienst ein und starten Sie ihn:

Windows

.\acmefyer-agent.exe service install
.\acmefyer-agent.exe service start

Linux

sudo ./acmefyer-agent service install
sudo ./acmefyer-agent service start

Einfacher mit dem Setuppaket: Unter Agenten gibt es je Plattform (Windows x64, ARM64 und x86; Linux x64, ARM64, ARM und x86) ein Setuppaket, eine einzige Datei: der Agent mit der fertigen agent.yaml darin. Auf dem Zielsystem als Administrator bzw. mit sudo gestartet, kopiert sie sich nach C:\Program Files\Acmefyer Agent bzw. /opt/acmefyer-agent, schreibt dort die agent.yaml, installiert den Dienst und startet ihn. Schritte 2 und 3 entfallen damit. Die Programmdateien dafür nimmt der Server aus data/agent-bin/<plattform>/ (zum Beispiel data/agent-bin/linux-arm64/acmefyer-agent), von neben seiner eigenen Programmdatei oder aus dem Update-Feed; fehlt eine Plattform, sagt die Seite, wohin die Datei gehört. Das Paket enthält den Anmeldeschlüssel, geben Sie es deshalb nicht weiter.

Oder von hier aus installieren: Ebenfalls unter Agenten installiert Acmefyer den Agenten auf einem Zielsystem selbst, über SSH (Linux: Benutzer mit Root-Rechten oder sudo ohne Passwort, Passwort oder privater Schlüssel) oder über PowerShell-Remoting (Windows: WinRM muss eingeschaltet sein, Enable-PSRemoting; Benutzer mit Administratorrechten, bei Domänenkonten DOMÄNE\Benutzer; Port 5985, oder 5986 mit HTTPS). Acmefyer erkennt den Prozessor des Zielsystems und nimmt das passende Paket. Ein Windows-Zielsystem lädt das Paket über eine einmalige Adresse von diesem Server (über HTTPS oder den Agenten-Port, wie in der agent.yaml) und prüft seine Prüfsumme, es muss den Server also dort erreichen. Jeder Auftrag steht mit seinem Protokoll auf der Seite; die Zugangsdaten werden nicht gespeichert.

Der Agent erscheint danach in der Oberfläche unter Agenten. Bei der ersten Verbindung bekommt er vom Server eine eigene Identität (ein Zertifikat und einen eigenen Schlüssel) und speichert sie im Ordner agent-data. Den Anmeldeschlüssel braucht er danach nicht mehr. Sie können ihn aus agent.yaml entfernen.

Jeder Agent bekommt bei der Registrierung eine laufende Nummer (A001, A002 …), die nicht erneut vergeben wird, auch wenn ein Agent entfernt wurde. In den Deployments heißt er zum Beispiel „Agent 001 (mailarchiv)“: Nummer und Name, ohne eigenen Namen der Rechnername. Den Namen ändern Sie in der Liste mit dem Stift neben dem Namen. Die Liste zeigt den Rechner mit vollem Namen in Großbuchstaben (MAILARCHIV.ITV.LOCAL); ältere Agenten, die nur den kurzen Namen melden, ergänzt der Server über DNS.

Ist ein Agent älter als der Server, steht in der Liste der Knopf Aktualisieren (Pfeil nach oben); solange das Update läuft, dreht sich dort ein Kreis. Nach 24 Stunden aktualisiert der Server veraltete Agenten von selbst (agent.auto_update_after); schlägt das fehl, versucht er es erst nach weiteren 24 Stunden wieder.

Der Agent verbindet sich nicht mit einer http://-Adresse, und ohne Agenten-Port weist der Server Agenten ab, die ihn ohne HTTPS erreichen. Nur für eine Testumgebung lässt sich das mit agent.allow_insecure_http: true abschalten, auf Server und Agent. Ein Agent, der schon über server.http_addr mit HTTPS registriert ist, läuft dort weiter.

Die Liste unter Agenten zeigt neben jedem Namen die IP-Adresse seines Systems (die, über die er den Server erreicht; alle zusammen mit Plattform und Version auf der Seite des Agenten). Neustarten startet den Dienst des Agenten bei seinem nächsten Abruf neu, spätestens nach seinem Abrufintervall. Das geht bei Agenten, die als Dienst laufen; Deployments, die in dem Moment laufen, werden beim nächsten Abruf wiederholt.

Aktualisieren erscheint, wenn ein Agent eine andere Version hat als der Server. Beim nächsten Abruf holt der Agent das Agent-Programm dieses Servers für seine Plattform (dasselbe, das im Setuppaket steckt), prüft Prüfsumme und Start, ersetzt damit sein eigenes und startet neu. Agenten vor dieser Version können das noch nicht: Installieren Sie sie einmal mit dem Setuppaket oder der Ferninstallation neu.

Ein Agent, der über eine bestehende Installation neu installiert wird, behält seine Identität. Wurde er vorher unter Agenten entfernt, registriert er sich mit dem Anmeldeschlüssel aus seiner neuen agent.yaml neu. Ein nur entfernter, nicht neu installierter Agent bleibt draußen.

Agent entfernen

Vom Host deinstallieren auf der Seite des Agenten (unter Agent entfernen, nur für Administratoren) entfernt den Agenten vollständig von seinem System, ohne dass Sie sich dort anmelden. Mit seinem nächsten Abruf erledigt der Agent selbst:

  1. Er meldet seinen Dienst ab (unter Windows samt Ereignisprotokoll-Quelle, unter Linux die systemd-Unit). Gelingt das nicht, ändert er nichts weiter, läuft weiter und meldet den Fehler; die Seite zeigt ihn an.
  2. Er löscht seine agent.yaml (mit dem Anmeldeschlüssel) und seine Identität (Schlüssel, Client-Zertifikat, eigenes Geheimnis). Den Ordner agent-data, den das Setup anlegt, löscht er ganz; bei einem selbst gewählten agent.data_dir nur seine eigenen Dateien darin.
  3. Er löscht sein Programm samt den Resten des Selbst-Updates und den Installationsordner, wenn sonst nichts darin liegt. Unter Windows übernimmt das ein kleiner Helfer, sobald der Dienst beendet ist, weil Windows ein laufendes Programm sperrt.
  4. Er meldet dem Server, was er entfernt hat. Erst dann verschwindet er aus der Liste; das Audit-Log hält fest, was entfernt wurde.

Ist der Agent offline, wartet der Auftrag bis zu seinem nächsten Abruf; solange zeigt die Liste Wird entfernt und die Anforderung lässt sich zurücknehmen. Bestehen bleiben die Zertifikate, die der Agent für Deployments eingespielt hat, und die Sicherungen davon (*.before-acmefyer), weil die Anwendungen sie nutzen, sowie bereits geschriebene Einträge im Ereignisprotokoll bzw. im systemd-Journal. Agenten vor dieser Version können sich noch nicht selbst entfernen; aktualisieren Sie sie vorher.

Nur hier löschen entfernt den Agenten dagegen nur aus Acmefyer, etwa wenn sein System nicht mehr existiert. Auf einem noch vorhandenen System bleibt er dann installiert.

Auf dem System selbst: acmefyer-agent uninstall (oder remove) macht dasselbe direkt auf dem System, ohne Auftrag vom Server: Dienst stoppen und abmelden, Konfiguration, Identität, Programm und Installationsordner löschen und dem Server Bescheid geben, der den Agenten dann aus der Liste nimmt. Ist der Server nicht erreichbar, entfernt der Befehl den Agenten trotzdem und weist darauf hin, ihn unter Agenten zu löschen. Der Befehl fragt nichts, gibt aus, was er entfernt hat, und endet mit Exitcode 0, wenn alles entfernt ist; ist kein Agent installiert, meldet er das und endet ebenfalls mit 0. Lässt sich der Dienst nicht abmelden, ändert er nichts und endet mit 1. Er funktioniert mit dem installierten Programm wie mit dem Setuppaket; einen anderen Installationsordner geben Sie mit -dir an.

Windows

& "C:\Program Files\Acmefyer Agent\acmefyer-agent.exe" uninstall

Linux

sudo /opt/acmefyer-agent/acmefyer-agent uninstall

Mit PDQ Deploy oder einer anderen Softwareverteilung verteilen Sie das Windows-Setuppaket aus Agenten: zum Installieren als Installationsschritt mit dem Parameter setup, zum Entfernen dasselbe Paket mit dem Parameter uninstall. Beide laufen ohne Rückfrage unter dem Systemkonto und melden Erfolg mit Exitcode 0. Eine erneute Installation über eine bestehende behält die Identität des Agenten, eine Deinstallation ohne installierten Agenten gilt als Erfolg; beide Schritte lassen sich also gefahrlos wiederholen.

Erkannte Anwendungen

Der Agent durchsucht sein System nach Anwendungen, die TLS ausliefern, und listet sie auf seiner Seite: die Sites und virtuellen Hosts von nginx und Apache, Traefik (auch im Docker-Container, mit den Routern aus seiner Konfiguration und aus Container-Labels), HAProxy, Caddy und lighttpd, IIS mit seinen Bindungen, Exchange, MailStore Server, PRTG Network Monitor, ScriptRunner, Remotedesktop, WinRM und SQL Server, Postfix und Dovecot, PostgreSQL, MySQL und MariaDB, Proxmox VE und Proxmox Backup Server, Cockpit, Webmin, Grafana, Mosquitto, Tomcat, OpenLDAP, GitLab und Gitea (auch im Docker-Container, aus seiner app.ini). Docker selbst erscheint mit seinen laufenden Containern, Anwendungen ohne TLS (etwa Gitea hinter einem Proxy) mit dem Hinweis „ohne TLS“. Zu jeder zeigt er Namen, Ports, die Zertifikatsdatei und das Zertifikat, das gerade läuft, mit seinem Ablaufdatum.

Unter Windows findet er Tomcat, Apache und nginx auch dort, wo Hersteller sie mitbringen: über den Dienst, der sie startet (Tomcat auch über die procrun-Parameter catalina.base, Dienste hinter NSSM ebenso), und startet sie über diesen Dienst neu. Dazu kommen die HTTP.sys-Bindungen, die weder IIS noch ein bekanntes Produkt nutzt, als HTTP.sys, und jeder weitere lauschende Port, der TLS spricht, als TLS-Dienst mit dem Programm dahinter (etwa „java.exe – ManageEngine\ADAudit Plus“). Für TLS-Dienste gibt es kein Deployment; sie machen das Zertifikat unter Gefundene Zertifikate sichtbar.

Deckt ein Zertifikat dieses Servers die Namen ab, öffnet Deployment anlegen das Deployment mit Typ, Agent und Pfaden schon ausgefüllt; ein schon eingerichtetes ist markiert. Ohne passendes Zertifikat legt Domain anlegen eines für den ersten Namen an. Anwendungen, die ihre Zertifikate selbst beziehen (Caddy, Traefik mit ACME-Resolver, certbot) oder das Standardzertifikat des Systems verwenden (etwa das Snakeoil-Zertifikat von Debian), sind markiert und bekommen keinen Vorschlag, damit kein Zertifikat überschrieben wird, das auch andere nutzen. Ebenso markiert und ohne Vorschlag sind: IIS auf einem Configuration-Manager-Server (SCCM) und die Web-Registrierung einer Zertifizierungsstelle (interne PKI; die WSUS-Site bleibt auch auf dem SCCM-Server offen), IIS-Bindungen an den zentralen Zertifikatspeicher und Webserver, deren Konfiguration ein Produkt selbst schreibt, etwa VisualSVN Server oder MyQ (vom Hersteller verwaltet). Eine HTTPS-Bindung, für die HTTP.sys kein Zertifikat hat (so legt der WSUS-Installer Port 8531 an), gilt als ohne TLS.

Der Scan sucht außerdem, was ein Zertifikat schon erneuert: certbot (auch über seine Hooks), acme.sh, lego und ähnliche Programme in Cron-Jobs und systemd-Timern, Container wie certbot oder traefik-certs-dumper, die in den Ordner des Zertifikats schreiben, und unter Windows win-acme, Certify The Web und Posh-ACME. Solche Anwendungen sind mit wird erneuert von … markiert; ein Zertifikat einer ACME-CA (Lets Encrypt, ZeroSSL, …), das in den letzten Wochen ersetzt wurde, ohne dass ein Mechanismus gefunden wurde, mit kürzlich ersetzt, Erneuerung nicht gefunden. Schalten Sie die andere Erneuerung ab, bevor Sie auf Acmefyer umstellen, sonst überschreiben sich beide.

Der Scan liest nur Konfigurationsdateien und Zertifikate, nie private Schlüssel. Sonst fragt er nur docker (für Traefik im Container), auf einem Exchange-Server die Exchange-Verwaltungsshell und die Liste der lauschenden Ports (Windows: Get-NetTCPConnection, Linux: ss); mit jedem dieser Ports baut er eine TLS-Verbindung auf, um das Zertifikat zu lesen, ohne eine Anfrage zu senden. Der Agent scannt nach dem Start und danach alle 24 Stunden (agent.scan_interval), und sofort mit Jetzt scannen.

Gefundene Zertifikate

Gefundene Zertifikate auf der Seite Domains führt zwei Quellen zusammen: die Scan-Ergebnisse aller Agenten und den eigenen Netzwerk-Scan des Servers (siehe unten). Jedes Zertifikat erscheint einmal (nach seinem Fingerabdruck), mit allen Agenten, Anwendungen und Endpunkten, die es ausliefern, und abgeglichen mit Acmefyer:

  • Fehlt in Acmefyer: Keine Domain deckt die Namen ab. Das Plus legt eine Domain mit den öffentlichen Namen des Zertifikats an; interne Namen (.local, Kurznamen wie EX03, IP-Adressen) lässt es weg, weil keine öffentliche CA sie ausstellt.
  • Domain vorhanden: Eine Domain deckt die Namen ab, die Anwendung liefert aber noch ein anderes Zertifikat aus. Deployment anlegen richtet es für den Agenten ein. Bei einem Endpunkt aus dem Netzwerk-Scan, auf dem kein Agent läuft, gibt es nichts anzulegen; dort zeigt die Zeile die passende Domain.
  • Von Acmefyer: Die Anwendung nutzt bereits ein Zertifikat aus Acmefyer.
  • Intern: Selbstsignierte Zertifikate und solche nur mit internen Namen. Sie sind ausgeblendet und lassen sich einblenden.

Die Liste ist so aktuell wie der letzte Scan.

Netzwerk-Scan vom Server

Auch ohne Agent kann der Server das Netz nach Zertifikaten absuchen. Unter Netzwerk-Scan auf derselben Seite tragen Sie die Bereiche ein, eine Zeile je Eintrag: eine Adresse, ein Hostname oder ein CIDR-Bereich (z. B. 192.168.16.0/24), auf Wunsch mit :Port (sonst werden die üblichen Web-Ports probiert). Mit Jetzt scannen startet der Scan sofort, danach läuft er einmal täglich. Der Server baut dabei nur eine TLS-Verbindung auf, liest das ausgelieferte Zertifikat und erkennt das Produkt an einer einfachen HTTP-Antwort (Serverkennung, Titel, Weiterleitung). Er meldet sich nirgends an, verwendet keine Zugangsdaten und verändert nichts. Ein Bereich größer als /16 wird abgelehnt, und ein Lauf prüft höchstens einige Tausend Adressen, damit ein Tippfehler nicht zum unbegrenzten Durchsuchen wird. Gefundene Endpunkte erscheinen in der Liste darüber mit Adresse, Port und erkanntem Produkt. Scannen Sie nur Netze, für die Sie zuständig sind.

Benachrichtigungen

Unter Benachrichtigungen legen Sie fest, wer erfährt, wenn ein Zertifikat ausgestellt wurde, eine Erneuerung fehlschlägt oder ein Zertifikat bald abläuft. Möglich sind E-Mail, Microsoft Teams, Telegram, PRTG und Webhooks. Mit Testen prüfen Sie, ob eine Nachricht ankommt. Beim Anlegen eines Kanals zeigt das Formular zum gewählten Typ ein Beispiel mit allen Einstellungen und nur dessen Hinweis.

Benutzer und Rechte

Neben dem lokalen Benutzer admin können sich Ihre Kollegen mit ihrem Windows-Konto anmelden, wenn Sie Active Directory (oder einen anderen LDAP-Server) anbinden: unter Einstellungen → AD/LDAP. Der Abschnitt fasst alles zusammen:

  1. Verbindung: Server-Adresse (ldaps://dc01.firma.local:636 oder ldap://…:389, auf Wunsch mit StartTLS), Lesekonto mit Passwort und Suchbasis. *Verbindung testen* prüft die eingegebenen Werte, noch vor dem Speichern.
  2. Zugriff: Es gibt zwei Rollen. Für Admin und Betrachter wählen Sie je eine Gruppe (auch über verschachtelte Gruppen im Active Directory) oder eine OU, deren Konten die Rolle bekommen; Admin geht vor. Tippen Sie in das Suchfeld; Gruppen und OUs erscheinen mit ihrem DN, und *Admin* oder *Betrachter* übernimmt den Treffer. Für alle anderen Konten wählen Sie *Kein Zugang* (nur die gewählten Gruppen und OUs kommen herein) oder *Betrachter* (jedes Konto aus dem Verzeichnis darf lesen).
  3. Anmeldung testen: meldet ein Konto probeweise an und zeigt DN, Gruppen, die Rolle und was sie entschieden hat.

*Speichern* schreibt die Werte in die config.yaml und gilt sofort für die nächste Anmeldung, ohne Neustart.

Die Rollen:

  • Admin: darf alles, auch Zugangsdaten, Agenten, Benachrichtigungen und Einstellungen.
  • Betrachter: sieht alles, ändert nichts.

Den lokalen Benutzer admin schützen Sie zusätzlich mit einem zweiten Faktor: unter Einstellungen → Admin-Konto mit *Zwei-Faktor einrichten*. Scannen Sie den QR-Code mit einer Authenticator-App (etwa Microsoft oder Google Authenticator) und bestätigen Sie mit dem aktuellen Code aus der App (*Aktivieren*). Danach verlangt die Anmeldung von admin zusätzlich den *Zwei-Faktor-Code*. Im selben Abschnitt schalten Sie ihn mit *Zwei-Faktor deaktivieren* wieder ab.

Passwort von admin vergessen? Stoppen Sie den Dienst, löschen Sie in config.yaml die Zeile local_admin_password_hash und starten Sie den Dienst wieder. Acmefyer legt dann ein neues Startpasswort an und zeigt es im Konsolenfenster und im Protokoll.

Was in Acmefyer geändert wurde, steht im Menü unter Audit: wer wann was getan hat, mit Zeit und Benutzer, neueste zuerst. Die Liste lässt sich durchsuchen (auch nach Domain- und Agentennamen) und nach Bereich, Benutzer und Zeitraum filtern; Domains und Agenten sind verlinkt.

Lizenz und Aktivierung

Ohne Lizenzschlüssel verwaltet Acmefyer eine Domain mit einer Subdomain (oder einem Platzhalter-Zertifikat) und einen Agenten, damit Sie das Programm ausprobieren können. Mit Lizenzschlüssel gibt es keine Grenzen.

  • Den Lizenzschlüssel bekommen Sie nach dem Kauf sofort per E-Mail. Sie tragen ihn in der Oberfläche unter Einstellungen → Software-Update und Lizenz über *Lizenzschlüssel eingeben* ein, zusammen mit der E-Mail-Adresse, mit der Sie gekauft haben. Alternativ steht er in config.yaml unter license.
  • Für die Aktivierung braucht der Server eine Verbindung zu www.wedigo.net, auch über einen Proxy (siehe Internetzugang über einen Proxy). Danach meldet sich Acmefyer alle 30 Tage kurz dort. Fällt die Verbindung aus, läuft die Lizenz noch bis zu 60 Tage weiter.
  • Eine Lizenz gilt für eine Installation und für alle Updates der gekauften Version, also zum Beispiel für alle 1.x-Versionen. Erscheint eine neue Hauptversion, weist Acmefyer darauf hin, installiert sie aber nicht von selbst.
  • Endet eine Lizenz oder ist ein Schlüssel ungültig, startet Acmefyer trotzdem und erneuert alle vorhandenen Zertifikate weiter. Nur Neues lässt sich dann nicht mehr anlegen.

Mehr zu Kauf und Rückgabe: Preise und Lizenzbedingungen.

Updates

Acmefyer hält sich selbst aktuell. Es schaut regelmäßig auf www.wedigo.net nach, ob es eine neue Version gibt, prüft, dass sie wirklich von uns stammt, und installiert sie.

Wie das abläuft, legen Sie in der Einstellung update.mode fest:

  • auto (Standard): Neue Versionen werden installiert, der Dienst startet danach kurz neu.
  • notify: Acmefyer meldet eine neue Version nur. Sie installieren sie selbst in der Oberfläche unter Einstellungen → Software-Update und Lizenz.
  • off: Keine Prüfung auf Updates.

Mit update.window legen Sie eine Uhrzeit fest, zu der installiert werden darf, zum Beispiel "02:00-05:00".

Updates bleiben immer innerhalb Ihrer Hauptversion, zum Beispiel 1.x. Erscheint eine neue Hauptversion, zeigt Acmefyer einen Hinweis oben auf jeder Seite und unter Einstellungen → Software-Update und Lizenz: Ihre Lizenz gilt für die neue Hauptversion nicht, dafür ist ein Upgrade nötig. Ihre Version erhält weiter Updates. Ein Administrator kann den Hinweis oben ausblenden; er erscheint erst bei der nächsten Hauptversion wieder.

Automatisch installiert wird nur, wenn Acmefyer als Dienst läuft und in seinen Programmordner schreiben darf. Starten Sie es von Hand im Konsolenfenster, meldet es neue Versionen nur.

Zurück zur vorigen Version

Acmefyer hebt die vorige Version auf. Startet eine neue Version nicht richtig, kehrt es von selbst zur alten zurück. Sie können das auch von Hand tun:

Windows

.\acmefyer-server.exe rollback
.\acmefyer-server.exe service restart

Linux

sudo ./acmefyer-server rollback
sudo ./acmefyer-server service restart

Sicherung

Sichern Sie den Programmordner des Servers. Wichtig sind:

  • config.yaml: Ihre Einstellungen und der Hauptschlüssel. Ohne ihn lässt sich die Datenbank nicht mehr lesen.
  • acmefyer.db: alle Zertifikate, Ziele, Agenten und Zugangsdaten. Am sichersten kopieren Sie sie bei gestopptem Dienst.
  • der Ordner data: unter anderem die Zertifizierungsstelle für die Agenten. Geht er verloren, müssen sich alle Agenten neu anmelden.

Auf den Agenten genügt agent.yaml mit dem Ordner agent-data. Fehlt er, meldet sich der Agent mit dem Anmeldeschlüssel neu an.

Fehlerbehebung

Ein Zertifikat wird nicht ausgestellt. Was genau schiefging, steht beim Zertifikat in der Oberfläche und im Konsolenfenster auf dem Reiter Logs (Taste 7). Häufige Gründe: Port 80 ist von außen nicht erreichbar (HTTP-01), die Zugangsdaten zum DNS-Anbieter stimmen nicht, oder der eigene DNS-Server antwortet anders als das Internet (siehe DNS im eigenen Netz).

Das Protokoll im Konsolenfenster
Das Protokoll im Konsolenfenster

Browser warnen vor dem neuen Zertifikat. Wahrscheinlich ist es ein Test-Zertifikat aus der Staging-Umgebung. Legen Sie es mit einer echten Zertifizierungsstelle neu an.

Ein Agent erscheint nicht. Stimmen server_url und der Anmeldeschlüssel auf beiden Seiten? Erreicht das Zielsystem den Server unter der Adresse in server_url (Port 443 oder der Agenten-Port, standardmäßig 8444), und stimmt beim Agenten-Port server_ca_fingerprint? Der Agent schreibt den Grund in sein Protokoll.

Der Agent meldet „the server's certificate is not trusted: it was issued by "FortiGate CA"“ (oder eine andere Firewall). Zwischen Agent und Server sitzt eine Firewall mit TLS-Inspektion (SSL Deep Inspection). Sie bricht die Verbindung auf und legt ein eigenes Zertifikat vor. Der Agent lehnt das ab, weil die Firewall sonst Anmeldeschlüssel und Agent-Schlüssel mitlesen könnte. Nehmen Sie den Acmefyer-Server in der Firewall von der Inspektion aus. Bei einer FortiGate tragen Sie dazu im SSL/SSH-Inspektionsprofil der betroffenen Regel den Namen oder die Adresse des Servers als Ausnahme ein. Alternativ lassen Sie die Regel vom Agenten zum Server ohne Deep Inspection laufen (Profil „certificate-inspection“). Die CA der Firewall im Agenten zu hinterlegen, ist kein Ausweg: Dann könnte die Firewall mitlesen. Der Agent erkennt gängige Produkte (FortiGate, Sophos, Palo Alto, Check Point, Zscaler, Cisco, WatchGuard, SonicWall, ESET, Kaspersky und andere) und nennt in der Meldung, wo die Ausnahme hingehört. Prüfen können Sie die Verbindung jederzeit mit acmefyer-agent check -config agent.yaml; die Einrichtung (setup, auch die Ferninstallation in der Oberfläche) prüft sie ebenfalls und warnt im Protokoll.

Lizenz oder Updates: keine Verbindung zu www.wedigo.net. Den Grund zeigt die Oberfläche unter Einstellungen → Software-Update und Lizenz. Kommt der Server nicht direkt ins Internet, prüfen Sie im Protokoll oder im Konsolenfenster auf dem Reiter Settings, welcher Proxy genutzt wird; ist keiner eingestellt, tragen Sie ihn ein (im Browser unter Einstellungen → Proxy, mit Verbindungstest), siehe Internetzugang über einen Proxy. Im Konsolenfenster testet t auf dem Reiter Settings die Verbindung.

Seit der Proxy eingetragen ist, scheitert ein Webhook oder eine Benachrichtigung im eigenen Netz. Tragen Sie den Namen bei den Proxy-Ausnahmen ein (proxy.no_proxy).

Die Oberfläche geht nur auf dem Server selbst. So ist es voreingestellt. Siehe Zugriff von anderen Rechnern.

Ein Update wird nicht installiert. Läuft Acmefyer als Dienst und darf es in seinen Ordner schreiben? Eine Version, die schon einmal zurückgenommen wurde, installiert Acmefyer nicht noch einmal.

Hilft das alles nicht, schreiben Sie uns über das Kontaktformular.

Nachschlagen

Dieser Teil ist zum Nachschlagen gedacht, wenn Sie etwas Bestimmtes einstellen möchten.

Einstellungen

Die Einstellungen stehen in der Datei config.yaml im Programmordner, die des Agenten in agent.yaml. Sie öffnen sie mit einem Texteditor; die Werte des Servers ändern Sie auch im Browser unter Einstellungen. Nach einer Änderung starten Sie den Dienst neu. Jeden Wert können Sie stattdessen auch über eine Umgebungsvariable setzen, die in der Tabelle unter dem Namen steht.

Server

Schlüssel / UmgebungsvariableStandardBedeutung
server.http_addrACMEFYER_SERVER_HTTP_ADDR127.0.0.1:443Unter welcher Adresse die Oberfläche erreichbar ist. Standard 127.0.0.1:443; 0.0.0.0:443 öffnet sie für andere Rechner. Den Port können Sie auch im Konsolenfenster auf dem Reiter Settings ändern.
server.data_dirACMEFYER_SERVER_DATA_DIRdataOrdner für Daten des Servers, unter anderem die Zertifizierungsstelle der Agenten.
server.renew_intervalACMEFYER_SERVER_RENEW_INTERVAL1hWie oft Acmefyer nach Zertifikaten schaut, die erneuert werden müssen.
server.master_keyACMEFYER_SERVER_MASTER_KEY–Hauptschlüssel für alle Geheimnisse in der Datenbank. Wird beim ersten Start erzeugt. Nie ändern, sonst lässt sich die Datenbank nicht mehr lesen.
server.api_tokenACMEFYER_SERVER_API_TOKEN–Schlüssel für die Schnittstelle für eigene Skripte. Leer: Die Schnittstelle ist aus.
server.tls_certACMEFYER_SERVER_TLS_CERT–Zertifikatsdatei (PEM) für HTTPS. Zusammen mit server.tls_key eintragen.
server.tls_keyACMEFYER_SERVER_TLS_KEY–Schlüsseldatei (PEM) zum Zertifikat.
server.challenge_http_ifaceACMEFYER_SERVER_CHALLENGE_HTTP_IFACE–Netzwerkkarte für die Prüfung über HTTP-01. Leer: alle.
server.challenge_http_portACMEFYER_SERVER_CHALLENGE_HTTP_PORT–Port für die Prüfung über HTTP-01. Leer: 80.
server.dns_resolversACMEFYER_SERVER_DNS_RESOLVERScloudflare,google,quad9DNS-Server für die Prüfung über DNS-01, zum Beispiel cloudflare oder 9.9.9.9. Ohne Eintrag: Cloudflare, Google Public DNS und Quad9. Eine leere Liste ([]): die des Betriebssystems.

Anmeldung

Schlüssel / UmgebungsvariableStandardBedeutung
auth.local_admin_userACMEFYER_AUTH_LOCAL_ADMIN_USERadminName des lokalen Administrators.
auth.local_admin_password_hashACMEFYER_AUTH_LOCAL_ADMIN_PASSWORD_HASH–Das Passwort des lokalen Administrators, unumkehrbar verschlüsselt. Setzt Acmefyer selbst.
auth.local_admin_passwordACMEFYER_AUTH_LOCAL_ADMIN_PASSWORD–Passwort im Klartext, nur als Notlösung über die Umgebungsvariable. Es lässt sich dann in der Oberfläche nicht ändern.
auth.session_ttlACMEFYER_AUTH_SESSION_TTL12hNach welcher Zeit ohne Aktivität Sie neu angemeldet werden müssen.
auth.ldap.urlACMEFYER_AUTH_LDAP_URL–Adresse des Verzeichnisdienstes, etwa ldaps://dc01.example.com:636. Leer: keine Anmeldung über das Verzeichnis.
auth.ldap.start_tlsACMEFYER_AUTH_LDAP_START_TLSfalseEine Verbindung über ldap:// nachträglich verschlüsseln.
auth.ldap.insecure_skip_verifyACMEFYER_AUTH_LDAP_INSECURE_SKIP_VERIFYfalseDas Zertifikat des Verzeichnisdienstes nicht prüfen. Nur zum Testen.
auth.ldap.bind_dnACMEFYER_AUTH_LDAP_BIND_DN–Konto, mit dem Acmefyer im Verzeichnis sucht.
auth.ldap.bind_passwordACMEFYER_AUTH_LDAP_BIND_PASSWORD–Passwort dieses Kontos.
auth.ldap.base_dnACMEFYER_AUTH_LDAP_BASE_DN–Wo im Verzeichnis die Benutzer gesucht werden.
auth.ldap.user_filterACMEFYER_AUTH_LDAP_USER_FILTER–Suchfilter für den Benutzernamen, %s steht für den eingegebenen Namen.
auth.ldap.admin_groupACMEFYER_AUTH_LDAP_ADMIN_GROUP–DN der Gruppe oder OU, deren Konten Admin sind. Bei einer Gruppe zählen im Active Directory auch verschachtelte Gruppen.
auth.ldap.viewer_groupACMEFYER_AUTH_LDAP_VIEWER_GROUP–DN der Gruppe oder OU, deren Konten Betrachter sind. Ersetzt das frühere operator_group, das nicht mehr gilt: Konten aus dem Verzeichnis sind Admin oder Betrachter.
auth.ldap.default_roleACMEFYER_AUTH_LDAP_DEFAULT_ROLE–Was alle anderen Konten aus dem Verzeichnis bekommen: viewer (Betrachter, auch wenn leer) oder none (kein Zugang; nur die Gruppen und OUs oben kommen herein). Ein früher eingetragenes operator oder admin gilt als viewer.

Agent

Diese Werte stehen in agent.yaml auf dem Zielsystem. Nur agent.enroll_token und agent.allow_insecure_http gelten auch auf dem Server.

Schlüssel / UmgebungsvariableStandardBedeutung
agent.server_urlACMEFYER_AGENT_SERVER_URL–Adresse des Acmefyer-Servers: mit öffentlich vertrauenswürdigem HTTPS die der Oberfläche, zum Beispiel https://acme.example.com, sonst der Agenten-Port, zum Beispiel https://acme.example.com:8444.
agent.enroll_tokenACMEFYER_AGENT_ENROLL_TOKEN–Anmeldeschlüssel für neue Agenten. Auf Server und Agent gleich. Nach der ersten Anmeldung kann er beim Agenten entfallen.
agent.nameACMEFYER_AGENT_NAME–Anzeigename des Agenten. Leer: der Rechnername.
agent.data_dirACMEFYER_AGENT_DATA_DIRagent-dataOrdner, in dem der Agent seine Identität speichert.
agent.max_parallelACMEFYER_AGENT_MAX_PARALLEL4Wie viele Aufträge der Agent gleichzeitig ausführt.
agent.poll_intervalACMEFYER_AGENT_POLL_INTERVAL30sWie oft der Agent beim Server nach Aufträgen fragt.
agent.insecure_skip_verifyACMEFYER_AGENT_INSECURE_SKIP_VERIFYfalseDas Zertifikat des Servers nicht prüfen. Nur zum Testen.
agent.allow_insecure_httpACMEFYER_AGENT_ALLOW_INSECURE_HTTPfalseAgenten ohne HTTPS zulassen. Nur für Testumgebungen, auf Server und Agent setzen.
agent.listen_addrACMEFYER_AGENT_LISTEN_ADDR:8444Agenten-Port des Servers, Standard :8444. Immer verschlüsselt mit einem Zertifikat der Agenten-CA, bedient nur Agenten. Leer: aus; Agenten brauchen dann HTTPS auf server.http_addr.
agent.server_ca_fingerprintACMEFYER_AGENT_SERVER_CA_FINGERPRINT–Beim Agenten: Fingerabdruck (SHA-256) der Agenten-CA des Servers, wie unter Agenten angezeigt. Damit vertraut der Agent dem Server beim ersten Kontakt; nach der Registrierung kennt er die CA selbst.
agent.scan_intervalACMEFYER_AGENT_SCAN_INTERVAL24hWie oft der Agent sein System nach Anwendungen mit TLS durchsucht, siehe Erkannte Anwendungen. 0: nur auf Anforderung mit Jetzt scannen.
agent.auto_update_afterACMEFYER_AGENT_AUTO_UPDATE_AFTER24hNur Server. So lange darf ein Agent eine ältere Version als der Server haben, bevor der Server ihn von selbst aktualisiert, Standard 24h. 0: nur von Hand über Agenten.

Lizenz

Schlüssel / UmgebungsvariableStandardBedeutung
license.keyACMEFYER_LICENSE_KEY–Ihr Lizenzschlüssel. Am einfachsten tragen Sie ihn in der Oberfläche unter Einstellungen → Software-Update und Lizenz ein.
license.emailACMEFYER_LICENSE_EMAIL–Die E-Mail-Adresse, mit der Sie gekauft haben. Sie muss zum Schlüssel passen.

Updates

Schlüssel / UmgebungsvariableStandardBedeutung
update.modeACMEFYER_UPDATE_MODEautoauto, notify oder off, siehe Updates.
update.intervalACMEFYER_UPDATE_INTERVAL6hWie oft nach Updates geschaut wird.
update.windowACMEFYER_UPDATE_WINDOW–Uhrzeit, zu der Updates installiert werden dürfen, zum Beispiel "02:00-05:00". Leer: jederzeit.

Proxy

Schlüssel / UmgebungsvariableStandardBedeutung
proxy.urlACMEFYER_PROXY_URL–Proxy für Verbindungen ins Internet, zum Beispiel http://10.10.75.1:8080, mit Anmeldung http://benutzer:passwort@10.10.75.1:8080. Das Passwort speichert Acmefyer verschlüsselt in der Datenbank. Leer: der Proxy aus HTTPS_PROXY oder aus Windows, sonst keiner. Siehe Internetzugang über einen Proxy.
proxy.no_proxyACMEFYER_PROXY_NO_PROXY–Namen, Domains, IP-Adressen und Adressbereiche, die ohne Proxy erreicht werden, zum Beispiel ["corp.example.com", "10.20.0.0/16"]. Eine Domain gilt mit allen Namen darunter. Den Server selbst und die privaten Adressen erreicht Acmefyer immer direkt.

Protokoll und Datenbank

Schlüssel / UmgebungsvariableStandardBedeutung
logging.levelACMEFYER_LOGGING_LEVELinfoWie ausführlich das Protokoll ist: debug (sehr ausführlich), info, warn oder error (nur Fehler).
logging.formatACMEFYER_LOGGING_FORMATtextAufbau des Protokolls: text zum Lesen, json für Auswertungsprogramme.
Schlüssel / UmgebungsvariableStandardBedeutung
database.driverACMEFYER_DATABASE_DRIVERsqliteArt der Datenbank. Derzeit nur sqlite.
database.dsnACMEFYER_DATABASE_DSNacmefyer.dbDatei der Datenbank.

Befehle

Diese Befehle geben Sie im Konsolenfenster im Programmordner ein.

Option / BefehlStandardBedeutung
acmefyer-server -config–Eine andere Einstellungsdatei verwenden. Ohne Angabe: config.yaml im aktuellen Ordner.
acmefyer-server -no-tui–Ohne Konsolenfenster-Oberfläche starten.
acmefyer-server -service–Ohne Oberfläche starten, wie als Dienst.
acmefyer-server -version–Die Versionsnummer anzeigen.
acmefyer-server obtain–Ein Zertifikat direkt besorgen und als Dateien speichern, ohne Oberfläche und Datenbank. Praktisch zum Ausprobieren.
acmefyer-server obtain -castagingZertifizierungsstelle: staging (Test), production oder eine eigene Adresse.
acmefyer-server obtain -challengehttp-01Prüfverfahren: http-01, dns-01 oder tls-alpn-01.
acmefyer-server obtain -dns-provider–Kürzel des DNS-Anbieters für DNS-01, etwa hetzner. Die Zugangsdaten kommen aus Umgebungsvariablen.
acmefyer-server obtain -dns-resolver–DNS-Server für die Prüfung, wie server.dns_resolvers.
acmefyer-server obtain -domain–Name im Zertifikat. Mehrfach möglich, der erste ist der Hauptname.
acmefyer-server obtain -eab-hmac–EAB-Schlüssel dazu.
acmefyer-server obtain -eab-kid–EAB-Kennung, falls die Zertifizierungsstelle sie verlangt.
acmefyer-server obtain -email–E-Mail-Adresse für die Zertifizierungsstelle.
acmefyer-server obtain -http-iface–Netzwerkkarte für HTTP-01. Leer: alle.
acmefyer-server obtain -http-port80Port für HTTP-01.
acmefyer-server obtain -http-webroot–Prüfdatei in den Ordner eines vorhandenen Webservers legen.
acmefyer-server obtain -keyec256Art des Schlüssels: ec256, ec384, rsa2048 oder rsa4096.
acmefyer-server obtain -out–Ordner für die Zertifikatsdateien.
acmefyer-server obtain -timeout5m0sWie lange Acmefyer höchstens wartet.
acmefyer-server obtain -tls-iface–Netzwerkkarte für TLS-ALPN-01. Leer: alle.
acmefyer-server obtain -tls-port443Port für TLS-ALPN-01.
acmefyer-server service install–Als Dienst einrichten (mit Administratorrechten).
acmefyer-server service uninstall–Den Dienst wieder entfernen.
acmefyer-server service start–Den Dienst starten.
acmefyer-server service stop–Den Dienst stoppen.
acmefyer-server service restart–Den Dienst neu starten.
acmefyer-server service status–Anzeigen, ob der Dienst läuft.
acmefyer-server service install -configconfig.yamlEinstellungsdatei für den Dienst. Ohne Angabe: config.yaml im aktuellen Ordner.
acmefyer-server rollback–Zur Version vor dem letzten Update zurückkehren. Danach den Dienst neu starten.
acmefyer-server version–Die Versionsnummer anzeigen.
acmefyer-agent -config–Eine andere Einstellungsdatei verwenden.
acmefyer-agent -version–Die Versionsnummer anzeigen.
acmefyer-agent check–Die Verbindung zum Server so prüfen, wie der Agent sie aufbaut. Erkennt TLS-Inspektion gängiger Firewalls und Sicherheitsprogramme (FortiGate, Sophos, Palo Alto, Check Point, Zscaler, ESET, Kaspersky und andere) und sagt, wo die Ausnahme hingehört. Mit -config für eine andere Einstellungsdatei.
acmefyer-agent uninstall–Den Agenten vollständig von diesem System entfernen: Dienst, Programm, Konfiguration und Identität; der Server löscht ihn aus der Liste. Ohne Rückfrage, Exitcode 0 bei Erfolg und auch, wenn kein Agent installiert ist (für PDQ Deploy und andere Softwareverteilung). Alias remove.
acmefyer-agent uninstall -dirC:\Program Files\Acmefyer Agent | /opt/acmefyer-agentInstallationsordner des Agenten. Ohne Angabe: C:\Program Files\Acmefyer Agent bzw. /opt/acmefyer-agent.
acmefyer-agent service install–Den Agenten als Dienst einrichten (mit Administratorrechten).
acmefyer-agent service uninstall–Den Dienst wieder entfernen.
acmefyer-agent service start–Den Dienst starten.
acmefyer-agent service stop–Den Dienst stoppen.
acmefyer-agent service restart–Den Dienst neu starten.
acmefyer-agent service status–Anzeigen, ob der Dienst läuft.
acmefyer-agent service install -configagent.yamlEinstellungsdatei für den Dienst. Ohne Angabe: agent.yaml im aktuellen Ordner.

Tasten im Konsolenfenster

TasteBedeutung
1–7, ←/→, TabZwischen den Reitern Dashboard, Domains, Agents, DNS, Service, Settings und Logs wechseln.
↑/↓, k/jIn Listen nach oben und unten gehen.
rSofort neu laden.
oDie Oberfläche im Browser öffnen.
lDie Oberfläche für andere Rechner öffnen oder wieder schließen. Gilt nach einem Neustart.
EnterEinzelheiten zum gewählten Zertifikat zeigen (Reiter Domains).
RDas gewählte Zertifikat jetzt erneuern.
SpaceDNS-Server an- oder abwählen (Reiter DNS).
s / tDie Auswahl speichern oder testen, ob die DNS-Server antworten (Reiter DNS).
i / u / s / xDen Dienst einrichten, entfernen, starten oder stoppen (Reiter Service, mit Administratorrechten).
Enter / EscDen gewählten Wert ändern, mit Enter übernehmen oder mit Esc verwerfen (Reiter Settings).
s / tDie Einstellungen speichern oder die Verbindung zu www.wedigo.net mit dem eingetragenen Proxy testen (Reiter Settings).
RNach dem Speichern den Dienst neu starten, damit die Einstellungen gelten (Reiter Settings).
EndIm Protokoll ans Ende springen und neuen Einträgen folgen (Reiter Logs).
q, Esc, Ctrl+CDas Konsolenfenster schließen. Läuft Acmefyer nicht als Dienst, endet damit auch der Server.

Schnittstelle für eigene Skripte

Zertifikate lassen sich auch über eine Schnittstelle (JSON) anlegen und abfragen, etwa aus eigenen Skripten. Dafür tragen Sie in server.api_token einen Schlüssel ein und senden ihn bei jedem Aufruf mit (Authorization: Bearer <Schlüssel>). Die Adressen für Agenten nutzt nur acmefyer-agent.

RouteAnmeldungBedeutung
GET /api/infoöffentlichName und Version. GET /health antwortet außerdem, solange der Server läuft, gut für Überwachungssysteme.
POST /api/v1/certificatesAPI-SchlüsselEin Zertifikat anlegen.
GET /api/v1/certificatesAPI-SchlüsselAlle Zertifikate mit Zustand und Ablaufdatum.
GET /api/v1/certificates/{id}API-SchlüsselEin Zertifikat.
DELETE /api/v1/certificates/{id}API-SchlüsselEin Zertifikat löschen.
POST /api/v1/certificates/{id}/renewAPI-SchlüsselEin Zertifikat jetzt erneuern.
POST /api/v1/agents/enrollAnmeldeschlüssel der AgentenEin neuer Agent meldet sich an.
GET /api/v1/agent-setup/{token}einmaliger LinkEinmaliger Download eines Setuppakets bei der Ferninstallation eines Windows-Agenten. Der Schlüssel in der Adresse gilt zehn Minuten und nur einmal.
POST /api/v1/agents/{id}/heartbeatangemeldeter AgentDer Agent meldet, dass er läuft, mit Version, Plattform und IP-Adressen; die Antwort enthält einen angeforderten Neustart oder Scan.
POST /api/v1/agents/{id}/inventoryangemeldeter AgentDer Agent meldet die Anwendungen mit TLS, die er auf seinem System gefunden hat.
POST /api/v1/agents/{id}/removedangemeldeter AgentDer Agent bestätigt, dass er sich auf Anforderung von seinem System deinstalliert hat (oder meldet, warum nicht); danach löscht der Server seinen Eintrag, siehe Agent entfernen.
GET /api/v1/agents/{id}/programangemeldeter AgentDer Agent holt bei einer Aktualisierung das Agent-Programm dieses Servers für seine Plattform; die SHA-256 steht im Kopf X-Acmefyer-SHA256.
GET /api/v1/agents/{id}/tasksangemeldeter AgentDer Agent holt seine Aufträge ab.
POST /api/v1/agents/{id}/tasks/{taskID}/resultangemeldeter AgentDer Agent meldet das Ergebnis eines Auftrags.
GET /api/v1/agents/{id}/challengesangemeldeter AgentDer Agent holt Prüfdateien für HTTP-01 ab.
POST /api/v1/agents/{id}/challenges/{jobID}/resultangemeldeter AgentDer Agent meldet, dass die Prüfdatei bereitliegt.
POST /api/v1/agents/{id}/certificateangemeldeter AgentDer Agent erneuert seine eigene Identität.