You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- add staged OV/business flows and org-id pre-linking
- clarify provider-linked renewal lifetimes and validity output
- derive default output dirs from certificates-dir and common-name
- simplify docs and examples around Linux defaults
certbro-public-snapshot: true
certbro-private-commit: 3dd4983fceaf556415c96cb57ef1d4ccced59f0e
certbro-private-branch: main
Copy file name to clipboardExpand all lines: CHANGES.md
+31-1Lines changed: 31 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,14 +2,44 @@
2
2
3
3
This file summarizes notable changes from the most recent committed updates.
4
4
5
+
## 2026-03-23
6
+
7
+
-`certbro issue`, `certbro import`, and `certbro issue-pair` now derive their output directories from `--certificates-dir` plus `common-name` when no explicit output path is passed.
8
+
- Removed redundant `--output-dir` and `--output-dir-base` flags from the basic English and German examples, walkthroughs, and quick-start guides.
9
+
- Simplified the README, getting-started guides, workflow overview, renewal/import/automation guides, and Ubuntu walkthroughs so the first example commands now rely on the Linux defaults instead of repeating default flags.
10
+
- Removed default-valued parameters such as `/etc/certbro` state and certificates paths, the default DV product, and default key or timer settings from basic example commands. Non-default flags remain documented where they actually change behavior.
11
+
- Restructured the larger Ubuntu walkthroughs so the initial `issue`, `renew`, `install`, and `list` examples stay flat and copy-pasteable, while non-default product and lifetime overrides are now described as explicit optional follow-up variants.
12
+
13
+
---
14
+
15
+
- Aligned the OV/business docs and example walkthroughs with the current TLS API semantics. The guides now describe `certbro issue` as blocking by default for DV products only.
16
+
- Documented the `--org-id` path for OV/business orders, so existing usable organizations can be pre-linked before ordering.
17
+
- Updated staged OV/business completion fixtures and tests to the current Console completion route under `/my/certs/{certificate_id}/complete`.
18
+
19
+
---
20
+
21
+
- Added staged OV/business order support for the TLS API completion flow.
22
+
-`certbro issue` now treats `action_required=true` as a successful staged start, stores pending material locally, prints the Console `completion_url`, and exits without blocking for issuance.
23
+
-`certbro renew` now resumes staged OV/business orders, keeps action-required orders pending without duplicating them, provisions DCV once validation records appear, and finalizes download and deployment after issuance.
24
+
- Extended pending metadata, list output, and regression coverage for staged OV/business orders, including `action_required`, `pending_reason`, `pending_message`, `completion_url`, and `organization_id`.
25
+
26
+
---
27
+
28
+
- Aligned renewal handling with the updated TLS API semantics for provider-linked renewals.
29
+
-`validity_days` is now treated consistently as the purchased base lifetime, while the effective issued lifetime is derived from `valid_from` and `valid_until`.
30
+
- Added issued-lifetime helpers and surfaced `purchased_validity_days`, `effective_validity_days`, and `renewal_bonus_days` in CLI output and deployment metadata.
31
+
- Updated docs and tests so `certbro` no longer implies guaranteed renewal credit before issuance.
32
+
33
+
---
34
+
5
35
## 2026-03-22
6
36
7
37
- Added English and German validity-management guides and updated the existing renewal, issuing, quick-start, and Ubuntu example docs to describe the new lifetime rules and short-lifetime examples correctly.
8
38
- Expanded regression coverage for schedule transitions, renewal timing validation, legacy lead-time normalization, and recent-issuance cooldown behavior.
9
39
- Added a 48-hour cooldown after fresh issuance. Non-forced renewal runs now skip certificates that were issued less than 48 hours ago.
10
40
- Added self-healing for legacy managed certificates with overly large lead times. During renewals, stored lead times are reduced to `validity_days - 1` when needed.
11
41
- Added renewal timing validation to prevent immediate renewal or reissue loops. New and updated configurations now require `validity_days` to be greater than both `renew_before_days` and `reissue_lead_days`.
12
-
- Added automatic normalization of stored `validity_days` during renewals. If an older managed certificate still stores a now-too-large value, `certbro renew` uses the current schedule-aware default and persists the adjusted value after a successful run.
42
+
- Added automatic normalization of stored `validity_days` during renewals. If an older managed certificate still stores a now-too-large value, `certbro renew` uses the current schedule-aware default and persists the adjusted value during renewal processing.
13
43
- Moved the schedule-aware CA/B validity handling one day earlier than the official transition dates, so `certbro` starts using the upcoming lower defaults on `2026-03-14`, `2027-03-14`, and `2029-03-14`.
Copy file name to clipboardExpand all lines: README.de.md
+10-13Lines changed: 10 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ Das Tool bestellt Zertifikate, legt `dns-cname-token`-Validierungsrecords über
14
14
- RSA- und ECDSA-Key-Rotation bei neuen Bestellungen, Renewal-Orders und Reissues
15
15
- Stabile Dateien unter `live/` und versionierte Snapshots unter `archive/`
16
16
- Eingebaute Validierung und Reload-Unterstützung für `nginx`, `apache` und `caddy`
17
-
-Stündliche unbeaufsichtigte Renewals über `systemd`
17
+
-Unbeaufsichtigte Renewals über `systemd`
18
18
19
19
## Voraussetzungen
20
20
@@ -41,47 +41,44 @@ curl -fsSL https://install.certbro.com/rf | CERTBRO_VERSION=v0.1.0 sh
41
41
42
42
## Schnellstart
43
43
44
-
Standardmäßig nutzt `certbro``/etc/certbro/state.json` als State-Datei und `/etc/certbro` als Root für verwaltete Zertifikate. Die folgenden Befehle nennen die Pfade der Klarheit halber trotzdem explizit:
44
+
Standardmäßig nutzt `certbro``/etc/certbro/state.json` als State-Datei und `/etc/certbro` als Root für verwaltete Zertifikate. `issue`, `import` und `issue-pair` leiten Zertifikatsverzeichnisse ebenfalls aus diesem Root und dem `common-name` ab. Die folgenden Befehle verwenden diese Defaults. `--state-file`, `--certificates-dir`, `--output-dir` und `--output-dir-base` sind nur nötig, wenn andere Pfade genutzt werden sollen.
Für DV-Produkte wartet `certbro issue` in der Regel auf die Ausstellung und deployt das Zertifikat direkt. Für OV- oder Business-Produkte kann die TLS API stattdessen `action_required=true` mit einer `completion_url` unter `/my/certs/...` zurückgeben. In diesem Fall speichert `certbro` das Pending-Material lokal, gibt die Console-URL aus und endet erfolgreich. Ein späterer Lauf von `certbro renew` setzt denselben offenen Vorgang fort, nachdem der Console-Schritt abgeschlossen wurde.
- Multi-Domain-Zertifikate: `--dns-name` für jede SAN wiederholen
83
79
- Paralleler RSA- und ECDSA-Betrieb: `certbro issue-pair`
84
80
- Bereits bestehende regfish-Bestellungen: Import per `certificate_id`
81
+
- OV- oder Business-Bestellungen: `certbro issue` kann eine Console-`completion_url` zurückgeben; wenn bereits eine nutzbare `--org-id` bekannt ist, direkt mitgeben, andernfalls die Bestellung dort abschließen und später mit `certbro renew` finalisieren
Copy file name to clipboardExpand all lines: README.md
+10-13Lines changed: 10 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ It orders certificates, provisions `dns-cname-token` validation records through
14
14
- RSA and ECDSA key rotation on new issues, renewal orders, and reissues
15
15
- Stable files under `live/` and versioned snapshots under `archive/`
16
16
- Built-in validation and reload support for `nginx`, `apache`, and `caddy`
17
-
-Hourly unattended renewals through `systemd`
17
+
-Unattended renewals through `systemd`
18
18
19
19
## Requirements
20
20
@@ -41,47 +41,44 @@ curl -fsSL https://install.certbro.com/rf | CERTBRO_VERSION=v0.1.0 sh
41
41
42
42
## Quick Start
43
43
44
-
By default, `certbro` uses `/etc/certbro/state.json` as the state file and `/etc/certbro` as the managed certificates root. The commands below keep the paths explicit for clarity:
44
+
By default, `certbro` uses `/etc/certbro/state.json` as the state file and `/etc/certbro` as the managed certificates root. `issue`, `import`, and `issue-pair` also derive certificate directories from that root and the `common-name`. The commands below use those defaults. Add `--state-file`, `--certificates-dir`, `--output-dir`, or `--output-dir-base` only when you want different paths.
For DV products, `certbro issue` usually waits for issuance and deploys the certificate directly. For OV or business products, the TLS API can instead return `action_required=true` with a `completion_url` under `/my/certs/...`. In that case, `certbro` stores the pending material locally, prints the Console URL, and exits successfully. A later `certbro renew` run resumes the same pending order after the Console step has been completed.
- Multi-domain certificates: repeat `--dns-name` for each SAN
83
79
- Dual RSA and ECDSA deployment: use `certbro issue-pair`
84
80
- Existing regfish orders: import by `certificate_id`
81
+
- OV or business orders: `certbro issue` can return a Console `completion_url`; if you already know a usable `--org-id`, pass it up front, otherwise complete the order there and let `certbro renew` finish it later
Der Befehl oben nutzt das Default-DV-Produkt und die schedule-aware Default-Laufzeit. Wenn ein anderes Produkt oder eine kürzere Testlaufzeit gewünscht ist, einfach gezielt nicht-defaultige Flags wie `--product SecureSite` oder `--validity-days 30` ergänzen.
223
+
233
224
Was während `certbro issue` passiert:
234
225
235
226
-`certbro` erzeugt lokal einen frischen Private Key und CSR
236
227
- es legt die TLS-Bestellung über die regfish TLS API an
237
228
- es provisioniert automatisch die benötigten `dns-cname-token`-DCV-Records über die regfish DNS API
238
-
-es wartet auf die Ausstellung
229
+
-in diesem DV-Beispiel wartet es auf die Ausstellung
239
230
- es lädt das Zertifikat herunter und deployt es auf stabile Pfade unter `${CERTBRO_DIR}/live/`
240
231
- weil `--webserver apache` gesetzt ist, validiert es die Apache-Konfiguration und reloadet Apache nach dem Deployment
Das `3`-Tage-Beispiel funktioniert nur, weil die gespeicherten Lead-Tage auf `2` gesetzt wurden. `certbro` lehnt Laufzeiten ab, die nicht größer sind als die Renewal-Lead-Tage.
319
+
Wenn sehr kurze Laufzeiten getestet werden sollen, müssen `--renew-before-days` und `--reissue-lead-days` unter der gekauften Basislaufzeit bleiben. Werte, die sofort wieder in das Renewal- oder Reissue-Fenster führen würden, lehnt `certbro` ab.
329
320
330
321
`--force` nur verwenden, wenn bewusst ein echter Renewal- oder Reissue-Flow für Tests ausgelöst werden soll.
0 commit comments