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 (standardmäßig Port 8443). 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:8443, oder Sie drücken im Konsolenfenster die Taste o.

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
  • tragen Sie in der Einstellung server.http_addr den Wert 0.0.0.0:8443 ein.

Danach starten Sie den Dienst neu und geben den Port 8443 in der Firewall des Servers frei. Den Port ändern Sie im Konsolenfenster auf dem Reiter Settings (Taste 6) oder in server.http_addr.

HTTPS für den Server

Solange keine Zertifikatsdatei eingetragen ist, ist die Oberfläche unverschlüsselt (HTTP). Für Ihren Browser im eigenen Netz mag das kurz reichen. Agenten nimmt Acmefyer aber nur über HTTPS an, damit ihre Zugangsdaten nicht offen durchs Netz gehen.

Am einfachsten besorgt Acmefyer das Zertifikat für sich selbst:

  1. Legen Sie ein Zertifikat für den Namen des Servers an, zum Beispiel acme.example.com.
  2. Fügen Sie dem Zertifikat das Ziel Datei (PEM) hinzu, ausgeführt auf dem Server, mit einem Ordner wie C:\Program Files\Acmefyer\tls.
  3. Tragen Sie die beiden Dateien in die Einstellungen ein und starten Sie den Dienst neu:
server:
  http_addr: "0.0.0.0:8443"
  tls_cert: "tls/fullchain.pem"
  tls_key: "tls/privkey.pem"

Wird das Zertifikat später erneuert, nimmt Acmefyer die neuen Dateien von selbst, 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:

  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

Zertifikate anlegen

Neue Zertifikate legen Sie in der Oberfläche unter Zertifikate mit Neu 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).
  2. Namen. Der Hauptname, etwa www.example.com, und auf Wunsch weitere Namen im selben Zertifikat. Ein Platzhalter-Zertifikat (*.example.com) geht nur mit DNS-01.
  3. Prüfverfahren. Damit zeigen Sie der Zertifizierungsstelle, dass Ihnen der Name gehört.
  4. Schlüssel und E-Mail. Die E-Mail-Adresse bekommt Hinweise der Zertifizierungsstelle.

Ein Test-Zertifikat erkennen Sie in der Liste am Hinweis Staging. Wenn alles klappt, legen Sie dasselbe Zertifikat noch einmal mit einer echten Zertifizierungsstelle an und löschen das Test-Zertifikat.

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. 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.
  • TLS-ALPN-01: Wie HTTP-01, aber über Port 443.
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: im Konsolenfenster auf dem Reiter DNS (Taste 4) oder in der Einstellung server.dns_resolvers.

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

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.

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.

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

  • IIS: Zertifikat in Windows einspielen und an die Website binden.
  • Exchange: Zertifikat für die gewählten Exchange-Dienste aktivieren.
  • 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.
  • 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.

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

So richten Sie einen Agenten ein:

  1. Der Server braucht HTTPS, siehe HTTPS für den Server.
  2. Tragen Sie auf dem Server einen geheimen Anmeldeschlüssel für Agenten ein, agent.enroll_token in config.yaml, zum Beispiel eine lange Zufallszeichenfolge. Starten Sie den Dienst neu.
  3. Legen Sie auf dem Zielsystem die Programmdatei acmefyer-agent in einen Ordner und daneben eine Datei agent.yaml:
agent:
  server_url: "https://acme.example.com:8443"
  enroll_token: "derselbe Schlüssel wie auf dem Server"
  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

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.

Ohne HTTPS weist der Server Agenten ab, und der Agent verbindet sich nicht mit einer http://-Adresse. Nur für eine Testumgebung lässt sich das mit agent.allow_insecure_http: true abschalten, auf Server und Agent.

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.

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. Das richten Sie unter Einstellungen ein und testen es dort auch.

Über Gruppen im Verzeichnis vergeben Sie die Rechte:

  • Admin: darf alles, auch Zugangsdaten, Agenten, Benachrichtigungen und Einstellungen.
  • Operator: legt Zertifikate und Ziele an, erneuert und löscht sie.
  • Betrachter: sieht alles, ändert nichts.

Für Administratoren lässt sich eine Anmeldung mit zweitem Faktor einschalten, mit einer Authenticator-App. Alle Änderungen stehen im Protokoll, mit Zeit und Benutzer.

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.

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 → Lizenz 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.
  • 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 beim Software-Update und bei der 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. Läuft der Server mit HTTPS? Stimmen server_url und der Anmeldeschlüssel auf beiden Seiten? Erreicht das Zielsystem den Server auf Port 8443? Der Agent schreibt den Grund in sein Protokoll.

Lizenz oder Updates: keine Verbindung zu www.wedigo.net. Den Grund zeigt die Oberfläche unter Einstellungen → 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, 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. 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:8443Unter welcher Adresse die Oberfläche erreichbar ist. 0.0.0.0:8443 ö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_RESOLVERS–DNS-Server für die Prüfung über DNS-01, zum Beispiel cloudflare oder 9.9.9.9. Leer: 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–Gruppe, deren Mitglieder Admin sind.
auth.ldap.operator_groupACMEFYER_AUTH_LDAP_OPERATOR_GROUP–Gruppe, deren Mitglieder Operator sind.
auth.ldap.default_roleACMEFYER_AUTH_LDAP_DEFAULT_ROLE–Rolle für alle anderen Benutzer aus dem Verzeichnis. Leer: viewer (Betrachter).

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, zum Beispiel https://acme.example.com:8443.
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.

Lizenz

Schlüssel / UmgebungsvariableStandardBedeutung
license.keyACMEFYER_LICENSE_KEY–Ihr Lizenzschlüssel. Am einfachsten tragen Sie ihn in der Oberfläche unter Einstellungen 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.feed_urlACMEFYER_UPDATE_FEED_URL–Woher die Updates kommen. Leer lassen.
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 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.
POST /api/v1/agents/{id}/heartbeatangemeldeter AgentDer Agent meldet, dass er läuft.
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.