Skip to content

fix: adapt certbot flags to modern certbot (2.3.1)#35

Merged
montoyaedu merged 1 commit into
masterfrom
fix/certbot-flags-modern-certbot
Jun 9, 2026
Merged

fix: adapt certbot flags to modern certbot (2.3.1)#35
montoyaedu merged 1 commit into
masterfrom
fix/certbot-flags-modern-certbot

Conversation

@montoyaedu

Copy link
Copy Markdown
Member

Problem

On ethicserver the SSL commands fail because the container builds FROM certbot/certbot:latest and a newer certbot changed its CLI:

  • easy proxy certbot-ionos ethiclab.itcertbot: error: ambiguous option: --dns-ionos could match --dns-ionos-propagation-seconds, --dns-ionos-credentials
  • easy proxy certbotcertbot: error: unrecognized arguments: --manual-public-ip-logging-ok

Fix (commands/proxy.sh)

  1. certbot-ionos: select the plugin with --authenticator dns-ionos instead of the bare --dns-ionos. The bare --dns-<name> selector only exists for certbot's official plugins; the third-party dns-ionos plugin only registers --dns-ionos-credentials / --dns-ionos-propagation-seconds, so --dns-ionos is now an ambiguous prefix. --authenticator dns-ionos is unambiguous and version-proof.
  2. certbot: drop --manual-public-ip-logging-ok, removed from modern certbot (IP-logging consent is no longer prompted).

Tests

  • New mock_docker_running_record helper records docker exec args.
  • Two bats tests assert the corrected flags (TDD: failed before, pass after).
  • Full suite 54/54 green. (Local npm run lint not run — shellcheck not installed on this machine; CI runs it pinned to v0.11.0. Changes are flag-only, no new shell constructs.)

Release

Patch bump 2.3.0 → 2.3.1: package.json, CLAUDE.md, CHANGELOG.md, version assertions in test/dispatcher.bats. Merging gives a directly-installable version.

Out of scope — server-side, not a repo bug

easy proxy rfc2136 failed on ethicserver due to config in /etc/letsencrypt/secret.txt:

  • dns_rfc2136_server is set to a hostname (enneesseuno.ethiclab.it); certbot requires an IP.
  • "Unsafe permissions" → chmod 600 /etc/letsencrypt/secret.txt.

Follow-up

Consider pinning the certbot base image to a fixed tag instead of :latest to stop silent CLI drift on rebuild (recorded in the knowledge base).

🤖 Generated with Claude Code

The container builds FROM certbot/certbot:latest, so a newer certbot
broke two commands on ethicserver:

- `easy proxy certbot-ionos` aborted with "ambiguous option: --dns-ionos".
  The bare --dns-ionos selector only exists for certbot's official plugins;
  with the third-party dns-ionos plugin it is an ambiguous prefix of
  --dns-ionos-credentials / --dns-ionos-propagation-seconds. Select the
  plugin with `--authenticator dns-ionos` instead.
- `easy proxy certbot` aborted with "unrecognized arguments:
  --manual-public-ip-logging-ok". That flag was removed from modern certbot
  (IP-logging consent is no longer prompted). Dropped it.

Tests: new mock_docker_running_record helper records `docker exec` args;
two bats tests assert the corrected flags. Full suite 54/54.

Knowledge base: recorded the certbot:latest flag-drift gotcha.

Note: `easy proxy rfc2136` failing on ethicserver is server-side config,
not a code bug — /etc/letsencrypt/secret.txt has a hostname for
dns_rfc2136_server (certbot requires an IP) and loose file permissions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@montoyaedu montoyaedu merged commit 7382706 into master Jun 9, 2026
2 checks passed
@montoyaedu montoyaedu deleted the fix/certbot-flags-modern-certbot branch June 9, 2026 21:12
montoyaedu added a commit that referenced this pull request Jun 9, 2026
- SERVER_RUNBOOK.md: recovery runbook for ethicserver after the certbot
  failures — update CLI, recreate the container (broken bind mount + load the
  valid cert), switch to an auto-renewing IONOS wildcard, plus troubleshooting
  and cert-verification commands.
- STATE.md: was stale at v2.0.0; now reflects v2.3.2, the 2026-06-09 certbot
  fixes (#35/#36), current WIP/blockers, and next steps.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant