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通常のメモリ安全なTLS経路が必要な場合。
opensslOpenSSLプロバイダー境界が必要な場合。
modern現代的なTLSクライアントだけを接続させたい場合。
intermediate既定の本番互換プロファイルが必要な場合。
compatTLS 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チャレンジトラフィックを許可します。
  • ACME状態を永続的な書き込み可能ストレージとしてマウントします。
  • 厳格なFIPSまたはISO-required boundariesには外部発行証明書を使います。
日本語