TLS 和 ACME
Fluxheim 可以透過靜態憑證提供 TLS 服務或為您管理 ACME 憑證。
受管理證書
[[vhosts]]
name = "site"
hosts = ["example.com"]
[vhosts.tls]
acme = true
email = "admin@example.com"
storage = "/var/lib/fluxheim/acme"
ACME 安全同生命週期
Fluxheim 1.7.9會驗證 ACME 發行商目錄,並且要求喺建立帳戶之前明確同意發行商發佈嘅確切條款。帳戶設定、憑證發佈、停用同埋撤銷使用可恢復交易。
[[tls.acme.issuers]]
name = "letsencrypt"
directory_url = "https://acme-v02.api.letsencrypt.org/directory"
terms_of_service_agreed = true
terms_of_service_url = "https://letsencrypt.org/repository/"
喺部署之前,確認發行商嘅目前網址。變更或者唔啱嘅協議必須被拒絕。
檢查同維護 ACME
fluxheim-acme --config /etc/fluxheim/fluxheim.toml doctor
fluxheim-acme --config /etc/fluxheim/fluxheim.toml doctor --online
fluxheim-acme --config /etc/fluxheim/fluxheim.toml renew
fluxheim-acme --config /etc/fluxheim/fluxheim.toml revoke --vhost example.com --confirm
網上檢查係由呢個伺服器執行,唔會取代外部監控。撤銷會隔離受管理嘅證書對,並要求重新載入;喺繼續正常服務之前安裝替換品。
TLS 選擇
| 選擇 | 以下情況使用 |
|---|---|
rustls | 需要一般嘅 memory-safe TLS path。 |
openssl | 您需要一個 OpenSSL 提供者邊界。 |
modern | 只有現代 TLS 客戶端必須連線。 |
intermediate | 您需要預設的生產相容性設定檔。 |
compat | 您必須明確 TLS 1.2 相容性。 |
靜態證書範例
[server]
tls_listen = ["0.0.0.0:8443"]
[[vhosts]]
name = "site"
hosts = ["example.com"]
[vhosts.tls]
cert_path = "/etc/fluxheim/tls/fullchain.pem"
key_path = "/etc/fluxheim/tls/privkey.pem"
客戶端憑證撤銷
如果雙向 TLS 必須拒絕已撤銷嘅用戶端證書,請提供大小受限嘅 PEM CRL 套件。Fluxheim 會驗證完整嘅簽發者鏈,並拒絕已過期或者唔完整嘅 CRL 政策。
[vhosts.tls.client_auth]
mode = "required"
ca_path = "/etc/fluxheim/tls/client-ca.pem"
crl_path = "/etc/fluxheim/tls/client-crls.pem"
喺要求 FIPS 或者 ISO 合規嘅模式入面,強制用戶端認證亦必須設定 CRL 套件。一般用戶端認證就要明確啟用撤銷檢查。
啟用 ACME 之前
- 確認 public DNS 指向呢部伺服器。
- 允許 HTTP-01 或 TLS-ALPN-01 challenge 流量。
- 將 ACME state 掛載為持久可寫 storage。
- 使用外部頒發的證書來滿足嚴格的 FIPS 或 ISO 要求的邊界。