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