Add certificate renewal and regeneration how-to - #447
Open
miharp wants to merge 1 commit into
Open
Conversation
miharp
marked this pull request as draft
August 11, 2026 10:36
miharp
force-pushed
the
docs/cert-renewal
branch
3 times, most recently
from
August 11, 2026 11:21
58a3b27 to
1c7933c
Compare
miharp
marked this pull request as ready for review
August 11, 2026 11:33
This was referenced Aug 11, 2026
miharp
force-pushed
the
docs/cert-renewal
branch
from
August 11, 2026 13:35
1c7933c to
c4d6849
Compare
Add a how-to page to the openvox-server collection covering expired host, agent, and CA certificates: - Diagnosing which certificate expired with openssl, including the ca_ttl naming trap: the puppet.conf setting (default 5y) governs certs the running CA signs, while certs created by the puppetserver ca CLI (setup, generate --ca-client) get its undocumented 15-year fallback - Regenerating the primary server's host cert offline with puppetserver ca generate --ca-client, including the dropped subject-alt-names caveat and OpenVoxDB refresh via puppetdb ssl-setup -f - Regenerating an expired agent or compiler cert with puppet ssl clean / bootstrap, with a non-blocking manual-signing sequence - Enabling automatic renewal (allow-auto-renewal; the packaged ca.conf ships auto-renewal-cert-ttl 60d, built-in default 90d) and renewing on demand with puppet ssl renew_cert, including its silent no-op when the CA has renewal disabled - Extending an expired CA cert with the puppetlabs/ca_extend Bolt module, or manually by re-signing the existing key (adapted from a community walkthrough by bastelfreak) Also document the auto-renewal and ca-ttl settings in the ca.conf page and add the nav entry. Every command was verified on Ubuntu 24.04 containers running openvox-server 8.15.2, openvox-agent 8.28.1, and openvoxdb, including the CA extension procedure on a backdated expired CA. Closes OpenVoxProject#446 Co-authored-by: Claude <noreply@anthropic.com> Signed-off-by: Michael Harp <mike@mikeharp.com>
miharp
force-pushed
the
docs/cert-renewal
branch
from
August 15, 2026 14:22
c4d6849 to
fa7135c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a "Renewing and regenerating certificates" how-to to the openvox-server collection, prompted by a community Slack thread about an expired primary server certificate at the 5-year mark.
The page covers:
ca_ttlnaming trap. The puppet.conf setting (default5y) governs certs the CA signs; the CA certificate's own 15-year lifetime is a fallback inpuppetserver ca setupthat was previously documented nowhere.puppetserver ca generate --ca-client, with the subject-alt-names caveat and OpenVoxDB copy refresh.puppetserver ca clean,puppet ssl clean,puppet ssl bootstrap,puppetserver ca sign.allow-auto-renewalandauto-renewal-cert-ttlin ca.conf (off by default; the packaged config ships 60d, the built-in default is 90d), the agent'shostcert_renewal_interval(30d), and on-demand renewal withpuppet ssl renew_cert/--if-expiring-in, including its silent no-op (exit 0) when the CA has renewal disabled.puppetlabs/ca_extendBolt plan first (matching how help.puppet.com handles this scenario), with the manual openssl re-signing procedure as the by-hand equivalent, adapted with attribution from bastelfreak's walkthrough.Also adds an auto-renewal settings section to the ca.conf page, the nav entry, and a tip in the getting-started guide pointing readers at automatic renewal right after the step that issues their first 5-year agent certificates.
Validated with markdownlint and a local
jekyll build; the page renders at/openvox-server/8.x/certificate_renewal.htmland is cross-linked fromconfig_file_ca.html.Container verification: every command was exercised on Ubuntu 24.04 Docker containers running openvox-server 8.15.2, openvox-agent 8.28.1, and openvoxdb: CA setup, offline
generate --ca-clientregeneration, the full agent clean/bootstrap/sign cycle (including--dns_alt_nameswithallow-subject-alt-names, and the non-blocking--waitforcert 0variant), auto-renewal issuing a 60-day cert, agent CA re-download after deletinglocalcacert, and the manual CA extension on a backdated expired CA (leaf verification fails before, passes after). Findings from that run are reflected in the page:puppetserver caCLI (setup,generate --ca-client) get the 15-year fallback, so only certs signed by the running CA default to 5 years.generate --ca-clientdoes not carry over subject alt names, and setup-created certs includeDNS:puppetby default; the page says to inspect the backed-up cert (puppet config print dns_alt_namesis empty in the default case) and covers the--forcefallback.auto-renewal-cert-ttl: "60d"; 90d is only the built-in default when the setting is absent.puppetdb ssl-setup -finstead of manual copies.ca-ttloverride.Container verification transcript (excerpted console output)
Two Ubuntu 24.04 containers on a shared Docker network:
voxserver.test(openvox-server 8.15.2, CA) andvoxagent.test(openvox-agent 8.28.1). Output is verbatim except for stripped ANSI codes and trimmed bootstrap retry loops.CA setup and diagnosis commands
Primary server regeneration (server stopped) — also shows the 15-year CLI fallback and the dropped
DNS:puppetalt name:Agent regeneration cycle (5-year cert from the running CA):
Non-blocking variant (
--waitforcert 0):Auto-renewal and subject alt names (packaged ca.conf ships 60d):
On-demand renewal (
puppet ssl renew_cert), including the silent no-op:Agent CA re-download after deleting localcacert:
Manual CA extension on a deliberately expired CA (backdated with faketime; leaf cert signed by it is still in its own validity window):
OpenVoxDB refresh:
Closes #446
Drafted with AI assistance (Claude Code); reviewed and verified by me.