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/"
在部署之前確認頒發者提供的目前 URL。必須拒絕更改或不匹配的協議。
檢查並維護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 路徑。 |
openssl | 你需要 OpenSSL provider boundary。 |
modern | 只允許現代 TLS clients 連線。 |
intermediate | 你希望使用預設生產相容性 profile。 |
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 前
- 確保公共 DNS 指向此伺服器。
- 允許 HTTP-01 或 TLS-ALPN-01 challenge 流量。
- 將 ACME state 掛載為持久可寫儲存。
- 在嚴格 FIPS 或 ISO 邊界中使用外部簽發證書。