{"id":16670358,"url":"https://github.com/mindsolve/ng-certificate-manager","last_synced_at":"2025-10-24T16:24:55.319Z","repository":{"id":139516947,"uuid":"566516207","full_name":"mindsolve/ng-certificate-manager","owner":"mindsolve","description":"A simple script for centralised certificate management","archived":false,"fork":false,"pushed_at":"2024-01-17T20:34:02.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-19T17:26:29.191Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mindsolve.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-11-15T20:52:13.000Z","updated_at":"2022-11-16T21:41:47.000Z","dependencies_parsed_at":"2024-01-17T21:53:37.882Z","dependency_job_id":"44e16561-51ec-418e-98cd-9ee109875634","html_url":"https://github.com/mindsolve/ng-certificate-manager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindsolve%2Fng-certificate-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindsolve%2Fng-certificate-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindsolve%2Fng-certificate-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindsolve%2Fng-certificate-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mindsolve","download_url":"https://codeload.github.com/mindsolve/ng-certificate-manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243318778,"owners_count":20272136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-12T11:38:12.658Z","updated_at":"2025-10-24T16:24:50.294Z","avatar_url":"https://github.com/mindsolve.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Next Generation Certificate Manager\n\nDer `ng-certificate-manager` beantragt, verwaltet und verteilt Zertifikate,\nz.B. von Let's Encrypt an Hosts und Dienste, welche diese benötigen.\n\nIm Falle von DNS-Validierung ermöglicht es, die dafür notwendigen Zugangsdaten\nnur auf einem Server zu hinterlegen, welcher dann die ausgestellten Zertifikate weiterverteilt.\n\nAuch in anderen Fällen kann die zentralisierte Verwaltung und Beantragung nützlich sein.\nDadurch muss nicht mehr auf jedem Host, der ein Zertifikat braucht, certbot konfiguriert werden,\nsondern nur noch ein simples Deployment-Skript (\"plugin\") auf dem Server, der den\n`ng-certificate-manager` ausführt hinzugefügt werden.\n\n### Getting Started:\n\n1. Kopiere die Datei `config.example.yml` nach `config.yml`\n2. Befülle die Datei entsprechend der Kommentare\n3. Führe das Skript manuell aus, um die Konfiguration zu testen\n4. [Erstelle ein Deployment-Skript/Plugin, um das Zertifikat zu verteilen](#eigene-pluginsdeployment-skripte)\n5. Füge das Skript in die Crontab ein, oder erstelle eine SystemD Timer Unit.\n   Es ist nicht nötig, das Skript öfter als täglich aufzurufen.\n\n### Funktionsweise:\n\nDer `ng-certificate-manager` führt nach der erfolgten Ausstellung/Verlängerung\nalle **in der Konfig festgelegten** Dateien/Programme im Ordner `cert-plugins` in konfigurierter Reihenfolge aus.\n\n***Hinweis:** Alle ausführbaren Textdateien (alle Skripte, z.B. Python, Bash usw.)\n**müssen** eine valide Shebang haben. Ansonsten weiß das System nicht, mit welchem\nInterpreter das Skript ausgeführt werden muss (siehe https://realguess.net/2013/11/17/why-shebang/).*\n\n### Eigene Plugins/Deployment-Skripte:\n\nErstelle eine ausführbare Datei, z.B. ein Bash-Skript im Ordner `cert-plugins`.\nDiesem Plugin stehen zwei Arten von Informationen zur Verfügung:\n\n1. **Generell verfügbare Informationen:**\n   Diese sind sowohl als Parameter als auch als Umgebungsvariable für das Plugin verfügbar. Folgende Werte werden immer\n   an ein Plugin übermittelt:\n\n| Parameter Nr. | Umgebungsvariable                     | Beschreibung                                                                                                                                                        |\n|---------------|---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| 1             | `_CERT_NAME`                          | Der Name des Zertifikats (`certificate_name` in der `config.yml`)                                                                                                   |\n| 2             | `_CERT_FULLCHAIN`\u003cbr/\u003e~~`_FULLCERT`~~ | Der Pfad zur `fullchain.pem`, dem Zertifikat incl. der Zertifikatshierarchie.\u003cbr/\u003eDer veraltete Name `_FULLCERT` wird aus Kompatibilitätsgründen weiterhin gesetzt. |\n| 3             | `_CERT_KEY`\u003cbr/\u003e~~`_KEY`~~            | Der Pfad zur `privkey.pem`, dem privaten Schlüssel zum Zertifikat.\u003cbr/\u003eDer veraltete Name `_KEY` wird aus Kompatibilitätsgründen weiterhin gesetzt.                 |\n\n2. **Individuelle Einstellungen:**\n   Diese werden in der Konfigurationsdatei beim jeweiligen Plugin-Aufruf mit dem Schlüssel `settings` gesetzt.  \n   Die gesetzen Werte sind für das Plugin als Umgebungsvariablen verfügbar. So können wiederverwendbare \n   Deployment-Skripte/Plugins erstellt werden, welche sich sonst nur durch Kleinigkeiten unterscheiden würden (z.B.\n   einem Hostnamen bei Dateitransfers).\n\nBeispiele für Deployment-Skripte bzw. Plugins befinden sich in `example-cert-plugins`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindsolve%2Fng-certificate-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmindsolve%2Fng-certificate-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindsolve%2Fng-certificate-manager/lists"}