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/"

喺部署之前,確認發行商嘅目前網址。變更或者唔啱嘅協議必須被拒絕。

檢查同維護 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 要求的邊界。
粵語