プロジェクト

全般

プロフィール

機能 #409

未完了

機能 #369: kagamidai 用の TLS 証明書管理

kagamidai でのプライベート CA による証明書の利用

nop_thread さんが11日前に追加. 4日前に更新.

ステータス:
進行中
優先度:
通常
担当者:
開始日:
2024/06/17
期日:
進捗率:

70%

一時中断:
いいえ
pinned:
いいえ
確認予定日:
前回確認日:
2024/06/24

説明

HTTP でアクセスしていた諸々のサービスを LAN 向けには HTTPS 化する。


関連するチケット 1 (0件未完了1件完了)

次のチケットがブロック 鯖缶 - 機能 #408: step-ca で CA を作成終了nop_thread2024/06/16

操作

nop_thread さんが11日前に更新

  • 次のチケットがブロック 機能 #408: step-ca で CA を作成 を追加

nop_thread さんが11日前に更新

  • ステータス新規 から 進行中 に変更
  • 開始日2024/06/17 にセット
  • 前回確認日2024/06/17 にセット

ひとまず apt でそのまま入る Caddy から試してみるか。

nop_thread さんが11日前に更新

{
        email <EMAIL_ADDR>
        acme_ca https://<STEP_CA>/acme/acme/directory
        acme_ca_root /etc/caddy/kagamidai-root.crt
}

navidrome.<INTERNAL> {
        reverse_proxy localhost:4533

        tls <EMAIL_ADDR> {
                ca https://<STEP_CA>/acme/acme/directory
                ca_root /etc/caddy/kagamidai-root.crt
        }
}

これでいけた。

nop_thread さんが11日前に更新

クライアント側で #408#note-3 のような特殊な手順が必要になる場合があることに注意。

nop_thread さんが11日前に更新 · 編集済み

  • 進捗率0 から 30 に変更

Navidrome と Adguard を HTTPS 化。
ただし Adguard は Step CA のマシンを壊したときにアクセスできる方が良いので、 HTTP to HTTPS のリダイレクトは無効化して plain HTTP でもアクセスできるようにしてある。

nop_thread さんが11日前に更新

実はローカルオンリーな web サービスはあまり多くない。
残りで主なものは Prometheus と Thanos である。

nop_thread さんが10日前に更新 · 編集済み

Thanos は GRPC を使っており、 reverse proxy 側がどうにかなったとしてもクライアント側での TLS 対応状況もよくわからないので面倒そうだ。
そもそも Thanos は LAN 内に閉じた通信しかしないと (今のところは) 想定して良いので、 TLS 利用のメリットは盗聴への対抗だけ。
本当に困るなら仮想マシンを分けるのをやめて各種コンポーネントを単一のコンテナにまとめる手もあるので、優先度は低いかもしれない。

とりあえず HTTP のエンドポイントだけ HTTPS 化してしまえば良いか。

nop_thread さんが9日前に更新

  • 前回確認日2024/06/17 から 2024/06/19 に変更

NetBox も kagamidai を弄るとき不可欠なので、 Cloudflare Tunnel に依存しない形でアクセスできるようにしておきたい。
NetBox 自体は自身のドメイン名を知っている必要はなさそうなので、複数のドメインから使えるようにできるはず。

nop_thread さんが4日前に更新

  • 進捗率30 から 70 に変更
  • 前回確認日2024/06/19 から 2024/06/24 に変更

Cloudflare Tunnel 用:

cftunnel.navidrome.nukobu.internal {
    reverse_proxy localhost:4533 {
        header_up Host <PUBLIC_HOSTNAME>

        # For Cloudflare Tunnels.

        # Replace untrusted headers from the client.
        #
        # Note that `X-Forwarded-For` from Cloudflare might come from the client (see
        # <https://developers.cloudflare.com/fundamentals/reference/http-request-headers/#x-forwarded-for>),
        # so it cannot be trusted and `CF-Connecting-IP` should be used instead.
        # About `CF-Connecting-IP`, see
        # <https://developers.cloudflare.com/fundamentals/reference/http-request-headers/#cf-connecting-ip>.
        header_up X-Real-IP {http.request.header.CF-Connecting-IP}
        header_up X-Forwarded-For {http.request.header.CF-Connecting-IP}
        header_up X-Forwarded-Host <PUBLIC_HOSTNAME>

        # Remove untrusted headers from the client.
        header_up -Forwarded
    }

    tls <EMAIL_ADDR> {
        acme_ca https://<STEP_CA>/acme/acme/directory
        acme_ca_root /etc/caddy/kagamidai-root.crt
    }
}

他の形式にエクスポート: Atom PDF