RymarisCerts APACHE recorded automatic walkthrough This is a genuine scripted terminal/PowerShell session on an isolated demo server. All displayed operations were executed. No production certificates, passwords, MFA, or private-key contents are included. Lab .test hostnames and explicit-root checks must be replaced with your own hostnames and normal public trust in production. Passwords were supplied privately before recording. On your server enter package passwords locally;never put them into commands,source files,or website configuration. 00:00:00.000 Chapter 1: Security: short lifetimes without repeated manual work 00:00:10.007 Chapter 2: Check the supported server and back up configuration 00:00:29.257 Chapter 3: Enroll the native client and installer once 00:00:36.293 Chapter 4: Verify the certificate actually served 00:00:49.338 Chapter 5: Check and execute the native scheduled action 00:01:09.939 Chapter 6: Confirm renewal and automatic installation 00:01:22.976 Chapter 7: Prove failure preserves the working certificate 00:01:42.293 Chapter 8: Recover and finish site checks RECORDED COMMANDS AND OUTPUT RymarisCerts | apache automatic renewal CHAPTER 1 | Security: short lifetimes without repeated manual work Short lifetimes limit misuse after key theft or incorrect issuance. A native client replaces certificates automatically before expiry. One-time administrator setup is still required. This is a real scripted Ubuntu lab session with disposable .test names. The private ACME fixture uses one-hour certificates to demonstrate renewal. Public deployments use the normal trusted provider and actual DNS. RymarisCerts | apache automatic renewal CHAPTER 2 | Check the supported server and back up configuration $ certbot --version certbot 2.9.0 $ apachectl -v Server version: Apache/2.4.58 (Ubuntu) Server built: 2026-11-12T12:58:56 $ apachectl configtest Syntax OK $ cp -p "$config" "$backup" Existing sites remain in place. Keys stay outside the website folder. Use the read-only compatibility check and prove public validation on your server. RymarisCerts | apache automatic renewal CHAPTER 3 | Enroll the native client and installer once This lab points to https://localhost:14000/dir with an explicit trusted test CA. Production uses the public provider endpoint in the written guide. $ certbot --apache --server "$ACME" --cert-name rymariscerts-auto-apache -d "$HOST" --key-type rsa --rsa-key-size 3072 --non-interactive --agree-tos --register-unsafely-without-email --no-redirect Saving debug log to /var/log/letsencrypt/letsencrypt.log Renewing an existing certificate for auto.apache.rymariscerts.test Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/rymariscerts-auto-apache/fullchain.pem Key is saved at: /etc/letsencrypt/live/rymariscerts-auto-apache/privkey.pem This certificate expires on 2026-11-13. These files will be updated when the certificate renews. Certbot has set up a scheduled task to automatically renew this certificate in the background. Deploying certificate Successfully deployed certificate for auto.apache.rymariscerts.test to /etc/apache2/sites-enabled/rymariscerts-auto-apache-le-ssl.conf Your existing certificate has been successfully renewed, and the new certificate has been installed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - If you like Certbot, please consider supporting our work by: * Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate * Donating to EFF: https://eff.org/donate-le - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RymarisCerts | apache automatic renewal CHAPTER 4 | Verify the certificate actually served $ curl --fail --cacert "$CA" "https://$HOST/" Automatic apache

RymarisCerts automatic apache certificate demo

$ peer # real TLS hostname,chain,expiry and SHA256 fingerprint subject= notAfter=Nov 13 21:20:36 2026 GMT sha256 Fingerprint=61:AA:EF:CA:C4:98:54:58:E8:B1:07:A0:B1:0B:79:DE:5F:52:0F:F0:A8:93:B4:EC:0A:A8:AE:EF:C7:2C:C7:62 Production must pass normal public browser trust from another device. The native client keeps its account and private keys on the server. RymarisCerts | apache automatic renewal CHAPTER 5 | Check and execute the native scheduled action $ systemctl enable --now certbot.timer $ systemctl list-timers certbot.timer --no-pager NEXT LEFT LAST PASSED UNIT ACTIVATES Sat 2026-11-14 07:39:40 UTC 11h Fri 2026-11-13 19:41:18 UTC - certbot.timer certbot.service 1 timers listed. Pass --all to see loaded but inactive timers, too. $ systemctl show certbot.service -p ExecStart ExecStart={ path=/usr/bin/certbot ; argv[]=/usr/bin/certbot -q renew --no-random-sleep-on-renew ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 } $ systemctl start certbot.service RymarisCerts | apache automatic renewal CHAPTER 6 | Confirm renewal and automatic installation $ systemctl show certbot.service -p Result -p ExecMainStatus Result=success ExecMainStatus=0 $ peer # inspect the replacement currently served subject= notAfter=Nov 13 21:21:07 2026 GMT sha256 Fingerprint=E1:D3:D8:31:63:AE:77:A9:09:AA:38:AC:E0:53:56:A8:04:7F:01:C8:3D:90:16:28:D3:2F:3A:EA:E8:68:59:E8 Verified: new served fingerprint. No manual file copy or reload was required. RymarisCerts | apache automatic renewal CHAPTER 7 | Prove failure preserves the working certificate $ cp -p "$config" "$backup" Controlled lab fault: temporarily point this one renewal at an unavailable loopback CA port. No production endpoint or other site is changed. $ systemctl start certbot.service # expected failure in this test Job for certbot.service failed because the control process exited with error code. See "systemctl status certbot.service" and "journalctl -xeu certbot.service" for details. $ systemctl show certbot.service -p Result -p ExecMainStatus Result=exit-code ExecMainStatus=1 $ peer # working certificate must remain served subject= notAfter=Nov 13 21:21:07 2026 GMT sha256 Fingerprint=E1:D3:D8:31:63:AE:77:A9:09:AA:38:AC:E0:53:56:A8:04:7F:01:C8:3D:90:16:28:D3:2F:3A:EA:E8:68:59:E8 A reported failure needs monitoring and investigation before expiry. RymarisCerts | apache automatic renewal CHAPTER 8 | Recover and finish site checks $ cp -p "$backup" "$config" $ systemctl start certbot.service $ peer # recovered scheduled renewal is installed subject= notAfter=Nov 13 21:21:56 2026 GMT sha256 Fingerprint=2D:AE:B7:7F:AF:53:CB:02:6D:53:4D:68:CB:B1:A9:C1:D7:82:BF:FA:37:2A:B4:21:54:E0:BE:57:37:F8:86:89 $ curl --fail --cacert "$CA" "https://$HOST/" Automatic apache

RymarisCerts automatic apache certificate demo

$ curl --fail http://127.0.0.1:8080/; curl --fail http://127.0.0.1:8081/ RymarisCerts apache control

RymarisCerts apache control site

RymarisCerts nginx control

RymarisCerts nginx control site

Both control sites work. Short-lived certificates are practical with verified automatic replacement. Unsupported setups need review or the manual fallback. The disposable lab timer is stopped after filming;production timers stay enabled. LAB HELPER NOTE Peer/fingerprint validate the live HTTPS name and chain using the explicit private lab root and report only public certificate details. The scheduled helper executes the real native renewal action. The temporary loopback connectivity fault is confined to this disposable lab. Production uses normal public trust and the provider endpoint in the written guide;never install the lab root or copy its endpoint to production. Private client account and certificate keys stay on the server and are never printed.