2026年租用 Mac Mini 7×24 決策矩陣 certbot 憑證自動續期、launchd 健康探測與夜間靜默視窗參數清單

閱讀時間:約 8 分鐘

🔒💻 獨立開發者在租用 Mac Mini七乘二十四跑閘道、反代與監控時,最怕 HTTPS 在無人值守時悄悄過期——certbot 續期日曆漂移、renew-hook誤殺行程、探針只看存活不看 notAfter。本文凍結決策矩陣launchd/crontab 可執行片段與斷電恢復 FAQ。內鏈 首頁launchd 與 pm2 行程守護對照APFS 磁碟水位 FAQ;CTA 指向 購買頁

痛點拆解

  1. 挑戰漂移:遷移反代后八十埠關閉,HTTP-01 靜默失败;DNS-01 權杖只活在互動 shell,續期無人值守即断。
  2. 重載半徑:樸素 renew-hook 重啟整機服務,夜批中 OpenClaw 閘道被連帶踢下線。
  3. 探測盲區健康探測 只看行程 PID,不看憑證剩餘天數,監控全绿但瀏覽器报 ERR_CERT_DATE_INVALID。

HTTP-01 與 DNS-01:certbot 挑戰模式怎麼選

每個主機名只選一种主模式;泛網域必须 DNS-01;單 IP 反代且公網可達八十/四四三时常用 HTTP-01

  • HTTP-01:nginx 暴露 /.well-known/acme-challenge/,適合租機單公網 IP。
  • DNS-01:Cloudflare/Route53 插件;適合 *.gateway.example.dev 與上游封 eighty 口。
  • 預發:除錯 plist 前先 certbot certonly --staging,避免 Let's Encrypt 限流。
# HTTP-01(nginx 插件示例)
sudo certbot certonly --nginx -d gateway.example.dev \
  --deploy-hook /usr/local/bin/reload-proxy.sh

# DNS-01(權杖走鑰匙圈,勿提交倉庫)
export CF_DNS_API_TOKEN="$(security find-generic-password -s certbot-cf -w)"
sudo -E certbot certonly --dns-cloudflare \
  -d gateway.example.dev -d '*.gateway.example.dev'

七乘二十四 certbot 與 launchd 決策矩陣

控制项起步值说明
挑戰模式HTTP-01 或 DNS-01泛網域强制 DNS;埠矩陣寫入跑冊
續期日曆本地 03:17、15:17與備份、夜批窗錯峰
健康探測60s curl + 7d 閘口剩餘 <14 天且非靜默则页
UTC 靜默带22:00–06:00+30分續期雜訊 Webhook 降級;P1 绕过
排程器launchd LaunchAgent實驗室可用 crontab 見下节
renew-hook僅重載反代禁止重啟 OpenClaw 守護

launchd 定時續期、renew-hook 與 crontab 備選

租機長跑優先 launchd StartCalendarInterval:日志路徑固定、重啟后仍載入。配对 renew-hooknginx -t 再 HUP。

<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0"><dict>
  <key>Label</key><string>com.runmini.certbot-renew</string>
  <key>ProgramArguments</key><array>
    <string>/opt/homebrew/bin/certbot</string>
    <string>renew</string><string>--quiet</string>
    <string>--deploy-hook</string>
    <string>/usr/local/bin/reload-proxy.sh</string>
  </array>
  <key>StartCalendarInterval</key><array>
    <dict><key>Hour</key><integer>3</integer><key>Minute</key><integer>17</integer></dict>
    <dict><key>Hour</key><integer>15</integer><key>Minute</key><integer>17</integer></dict>
  </array>
  <key>StandardOutPath</key><string>/var/log/certbot-renew.log</string>
</dict></plist>
#!/bin/bash
# reload-proxy.sh — 僅反代,不碰 OpenClaw
nginx -t && kill -HUP "$(cat /usr/local/var/run/nginx.pid)"
17 3,15 * * * /opt/homebrew/bin/certbot renew -q \
  --deploy-hook /usr/local/bin/reload-proxy.sh \
  >> /var/log/certbot-renew.log 2>&1

載入:launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.runmini.certbot-renew.plist。Node 閘道疊部見 launchd 與 pm2 對照稿

夜間靜默視窗、健康探測與告警路由

certbot 續期 放進 UTC 靜默窗,預期重載雜訊不叫醒值班;另起六十秒 健康探測 區分 TLS 與上游故障。

#!/bin/bash
# com.runmini.tls-health — 憑證天數 + /healthz
END=$(openssl s_client -connect 127.0.0.1:443 -servername gateway.example.dev 2>/dev/null \
  | openssl x509 -noout -enddate | cut -d= -f2)
EPOCH=$(date -j -f "%b %e %T %Y %Z" "$END" "+%s")
DAYS=$(( (EPOCH - $(date +%s)) / 86400 ))
[ "$DAYS" -lt 14 ] && curl -fsS -X POST "$ALERT_URL" -d "{\"days_left\":$DAYS}"
curl -fsS --max-time 5 https://gateway.example.dev/healthz || exit 1
  • 22:00–06:00 UTC 加三十分鐘緩衝:抑制 tls_renew 非 P1。
  • 剩餘 <7 天立即分頁;14 天內靜默外僅記 warning。
  • 標籤區分 tls_renewupstream_down,免 SSH 盲猜。

磁碟與日誌水位:續期前的 APFS 閘口

磁碟滿會導致 ACME 寫失敗與 certbot-renew.log 暴漲。對齊 APFS 水位 FAQ 再開無人值守 renew。

  • 黃十五紅十:黃線暫停新 renew 并清輪轉日志;紅線停 certbot 立即分頁。
  • /var/log/certbot-renew.log128MB×7 天 newsyslog。
  • 續期與深窗備份錯開,IO 公平見 launchd 節流專文

落地步驟(六步)

  1. 購買頁 開通租用 Mac Mini,自 幫助中心 SSH 連入,採 df -h 基線。
  2. 按矩陣選定挑戰模式,--staging 驗證通過後簽發生產憑證。
  3. 寫入 reload-proxy.sh 與 launchd plist,雙時段 renew。
  4. 部署 tls-health LaunchAgent 與告警 URL(密鑰進鑰匙圈)。
  5. 在監控平台配置 UTC 靜默與 days_left 分級路由。
  6. 演練:手動 certbot renew --dry-run,確認靜默窗内 Webhook 被抑制、迴圈 /healthz 仍绿。

可引用資訊

  • 續期日曆:03:17、15:17 本地;探測週期 60s
  • 靜默:22:00–06:00 UTC +30min;憑證閘口 14d/7d
  • 磁碟:黄15% 红10%;certbot 日志 128MB×7

斷電恢復 FAQ

問:續期會不會打斷 OpenClaw 夜批? 答:renew-hook 只 HUP 反代;閘道保持 127.0.0.1 迴圈,勿 systemctl 式全量重啟。

問:launchd 還是 crontab? 答:租機 7×24 託管 選 launchd;crontab 僅短期實驗。

問:斷電重啟後做什麼? 答:certbot certificates 核對有效期;APFS 高於黃線;冪等檢查點回放後再開告警。詳見 APFS FAQ

certbot 續期launchd 與健康探測寫進同一跑冊,閘道才能在租機上真正七乘二十四可稽核。回到 首頁 查看節點與套餐。

租用 Mac Mini:七乘二十四 TLS 與 launchd 續期

需要Apple Silicon長跑節點承载反代與閘道?先看 定價,經 免登入購買頁 下單;對照 launchd 與 pm2 對照稿;連線見 幫助中心 SSH/VNC

租用 Mac Mini · TLS 7×24