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 边界中使用外部签发证书。
简体中文