Fluxheim/文件/TLS 與 ACME

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 邊界中使用外部簽發證書。
繁體中文