Repository navigation
advanced-acme: add Advanced ACME 0.1.11 and acme.sh 3.1.6 - #7640
SoulInfernoDE wants to merge 11 commits into
Conversation
New package advanced-acme (noarch, DSM 7): automatic SSL certificates for DSM from IONOS SSL (ACME with External Account Binding), Let's Encrypt, ZeroSSL or any ACME server, with DNS-01 validation for 200+ DNS providers and installation into the DSM certificate manager. - cross/acme.sh: official acme.sh 3.1.6 release with a patch for longer certificate polling (IONOS/Sectigo needs several minutes to issue) - cross/advanced-acme: program files from the GitHub release, staged by the project's build.sh --stage; acme.sh updates from the interface are disabled in this build (ACME_UPDATES=0), acme.sh comes with the package - spk/advanced-acme: service user sc-advanced-acme, DSM desktop application, /usr/local/bin/advanced-acme, uninstall wizard and descriptions in all DSM languages; conflicts with the AdvancedACME package from the project's own releases Deutsch: Neues Paket advanced-acme (noarch, DSM 7): automatische SSL-Zertifikate für DSM von IONOS SSL (ACME mit External Account Binding), Let's Encrypt, ZeroSSL oder jedem ACME-Server, mit DNS-01-Bestätigung für über 200 DNS-Anbieter und Installation in die DSM-Zertifikatsverwaltung. - cross/acme.sh: offizielles acme.sh-3.1.6-Release mit einem Patch für längeres Abfragen des Zertifikats (IONOS/Sectigo braucht zum Ausstellen mehrere Minuten) - cross/advanced-acme: Programmdateien aus dem GitHub-Release, bereitgestellt über build.sh --stage des Projekts; acme.sh-Updates aus der Oberfläche sind in diesem Build abgeschaltet (ACME_UPDATES=0), acme.sh kommt mit dem Paket - spk/advanced-acme: Dienstbenutzer sc-advanced-acme, DSM-Desktop- Anwendung, /usr/local/bin/advanced-acme, Deinstallations-Assistent und Beschreibungen in allen DSM-Sprachen; schließt das Paket AdvancedACME aus den eigenen Releases des Projekts aus
Advanced ACME 0.1.11 adds a choice of appearance (light like DSM, dark, or automatic with the operating system). Digests from the release tarball. Deutsch: Advanced ACME 0.1.11 bringt die Wahl der Darstellung (hell wie DSM, dunkel oder automatisch wie das Betriebssystem). Prüfsummen aus dem Release-Tarball.
|
Could you mark this pull request as a Draft while you iterate, and Ready for Draft is what our CI keys on: while a PR is a draft a new push cancels the build See Open It as a Draft. |
With REQUIRED_MIN_DSM = 7.0 the package is part of the general noarch
build, where the CI downloads wheels without a TCVERSION and the
REQUIRED_MIN_SRM gate stops it ("Arch 'noarch-' is not supported").
Like dsm-dark-mode, it is now built for DSM 7.2. SPK_REV raised to 2.
|
I've not read all the package description but how is this different from #7303? If there are genuine improvements over that project, did you consider contributing them to the upstream https://github.com/mritd/dnsacme/ rather than crafting a new one? |
|
Thanks for looking! Short version: it covers cases dnsacme can't, and closing that gap would mean rewriting dnsacme rather than patching it. Where they differ (checked against dnsacme's current code):
The starting point was a real setup: an IONOS SSL certificate (EAB, 180-day validity) on a DiskStation where 2FA is mandatory for every admin. With dnsacme, neither the CA, the DNS provider nor the DSM import work there. Why not upstream: dnsacme is a single Go binary built on CertMagic; Advanced ACME is a DSM front end for acme.sh. Bringing the acme.sh DNS plugins, EAB CAs and the 2FA-safe install path into dnsacme would replace both its ACME engine and its DSM deployment, which is a different project rather than a contribution. The two can coexist: dnsacme stays the lean option for its providers, Advanced ACME covers IONOS, the long tail of DNS providers and NAS with enforced 2FA. |
Description
Screenshots of the SynoCommunity build (English, dark design); click for full size.
Tested on a real DiskStation with DSM 7.4 (IONOS SSL, 2-step verification enforced for all administrators) and on Virtual DSM 7.2.2 — details below.
New package Advanced ACME (
advanced-acme, noarch, DSM 7): automatic SSL certificates for DSM from IONOS SSL (ACME with External Account Binding, 180-day certificates), Let's Encrypt, ZeroSSL or any ACME server. DNS-01 validation for 200+ DNS providers through acme.sh (the NAS does not need to be reachable from the internet), automatic renewal and installation into the DSM certificate manager. Guided web interface in 20 languages with a light and an optional dark design, uninstall wizard and Package Center texts in all DSM languages.Upstream: https://github.com/SoulInfernoDE/synology-advanced-acme (GPL-3.0, release v0.1.11)
What it offers
advanced-acmeCLI for experts. Certificates created there are managed and renewed like the others.Packages
cross/acme.sh: official acme.sh 3.1.6 release, with one patch: after finalizing an order acme.sh polls for the certificate only 30 × 2 s when the CA sends no Retry-After header; IONOS (Sectigo) often needs several minutes. The patch keeps the loop but uses the backoff acme.sh uses elsewhere (about 9 minutes in total) and makes the number of polls adjustable (MAX_CERT_RETRY_TIMES, default unchanged).cross/advanced-acme: the program files (bash backend, CGI, web interface), staged by the project'sbuild.sh --stagenext to the acme.sh fromcross/acme.sh.spk/advanced-acme:SERVICE_USER = auto(sc-advanced-acme), service through the genericstart-stop-status, DSM desktop application (DSM_UI_DIR = ui),/usr/local/bin/advanced-acme, uninstall wizard withwizard_delete_data.Points worth a look
ACME_UPDATES=0); acme.sh is updated only with the package.certificate-configfor community packages, so certificates are imported through the DSM Web API. The user chooses one of three ways, each only after explicit consent:advanced-acme, created with a one-time administrator sign-in and a random password (the administrator's password is not stored; the account is deleted again with "delete data" on uninstall);synowebapiand deletes itself when the package is uninstalled.dnsacme: both issue certificates via DNS-01. Advanced ACME adds IONOS SSL with EAB and the IONOS DNS API, the DNS providers of acme.sh, and the root task for NAS with enforced 2-step verification. If you prefer to keep a single ACME package, I'm happy to discuss.SPK_CONFLICT = AdvancedACME: the upstream release package has the same DSM task; only one of them can be installed.DESCRIPTION_THA) is included but not written to INFO, becauseLANGUAGESinmk/spksrc.common.mkhas notha.Build:
make -C spk/advanced-acme TCVERSION=7.1 ARCH=noarchin the spksrc container.make arch-noarch-7.1stops in the pre-check ("SRM < 3.0" with an empty TCVERSION fromREQUIRED_MIN_SRM); I could not tell whether that is expected for noarch packages.Checklist
all-supportedcompleted successfully (noarch build above completed)Tested on a real DSM 7.4: the application (same code, as the upstream release package) runs on a real DiskStation with DSM 7.4, with an IONOS SSL certificate, 2-step verification enforced for all administrators and the DSM task; updates from earlier versions and renewals with installation into DSM were checked there.
The SynoCommunity build itself was tested on Virtual DSM 7.2.2: install, service as sc-advanced-acme, desktop window, Package Center texts, DSM notifications, CLI, stop/start, reinstall with data kept, uninstall with and without "delete data". The application is also covered by an end-to-end test (Pebble with EAB, mocks of the DSM Web API and the IONOS DNS API).
Type of change