Software

[HTTPS化] Bitwarden を Docker で構築しようとした その2 [vaultwarden]

投稿日:2021年5月25日 更新日:

前回構築した Bitwarden on Docker は http接続のみ対応で、
https接続非対応だったので、https対応にした。。。かった記録。

[追記] 全て上手く行くようになりました
[HTTPS化] Bitwarden を Docker で構築できた! その4 [vaultwarden]


もし間違いにお気づきの方がおられましたらコメントいただけるとありがたいです。

 

HTTPS化

前回も触れたが、最近の殆どのブラウザから http経由ではアカウントを作成することができない。
(http経由でアカウントを作成する方法はコチラ
アカウントはできても、iOS版クライアントでは接続すらできない。
これを解決するために、vaultwarden をhttpsを介してアクセスできるようにする。

環境

一つ大きな前提条件は、今回 vaultwarden の dockerコンテナを走らせるホストマシンは、
外部公開されていない、ローカルネットワーク(イントラネット?) 上にある。
どうしても外からアクセスしたいときは、VPNやSSHトンネルなどを介して行う。
このあたりの境界条件が、ネットで見つかる vaultwarden/bitwarden_rs の各種導入記事とは異なることに注意。

Google Adsense



セットアップ

Docker Compose を用いた導入方法は vaultwarden の wiki にある。

前半の "Caddy with HTTP challenge" は、外部公開されている環境の場合。
Let' Encrypt が外からポート80 を叩いて ACME HTTP-01 challenge を行える必要がある。
前述の通り、私の今回の環境は外部公開されていないマシンなので、この設定は使えない。
したがって、後半の "Caddy with DNS challenge" を参照する。

後半は以下のような環境用とある。

This example is the same as the previous one, but for the case where you don't want your instance to be publicly accessible (i.e., you can access it only from your local network). This example uses Duck DNS as the DNS provider.

 

DuckDNS の設定

まずDuckDNS にアカウントを持っていない人は作成する。
DuckDNS は無料で使える Dynamic DNS です。
sub-domain にIPアドレスを紐づけて、sub-domain.duckdns.org で引けるようにしてくれます。
DuckDNS と調べると、フィッシング詐欺とかスパムショートメールとかいう言葉ばかり出てきて、あまりにも Google汚染がヒド過ぎる。。。

DuckDNS に IP address を登録する。
Let's Encrypt を用いた private な instance生成方法のページの DuckDNSの設定の項に、

Create a subdomain for your vaultwarden instance (e.g., my-vw.duckdns.org), setting its IP to your vaultwarden host's private IP (e.g., 192.168.1.100).

とあるので、dockerホストのローカルIPを myvwarden(.duckdns.org) などに割り当てた。

Google Adsense



docker-compose.yml

Docker-Composeによる導入方法のページの後半にある docker-compose.yml をコピペで用意する。

  • DOMAIN: myvwarden.duckdns.org
  • EMAIL: my@email.address
  • DUCKDNS_TOKEN: DuckDNS's token(UUID)

上記を適宜自分に合うように変更する。

Caddy Custom build 取得

Dockerイメージ内の Caddy には、DNS challenge モジュールが含まれていないので、
それを含んだ Caddy を別途用意して、コンテナ内に見せるようにする。
対応するモジュールを含んだ Caddy は https://caddyserver.com/download からダウンロードできる。
Platform から Linux amd64 を選択、github.com/caddy-dns/duckdns にチェックを入れて "ダウンロード"、
docker-compose.yml と同じ場所において、caddyにリネーム、$chmod a+xで実行権限を付与する。
この caddyが docker-compose.yml で参照されており、コンテナ内標準の caddy を上書きするようになっている。

Caddyfile

Docker-Composeによる導入方法のページの後半にある Caddyfile をコピペして同じディレクトリに置く。

(This file does not need to be modified.)

とあるので、一切変更はしていない。

Google Adsense



コンテナの起動

 

するも、起動せず。。。

出力は大体こんな感じのが何度か繰り返される。

最終行の acme.zerossl.com へのリクエストを見ると、

{"type":"urn:ietf:params:acme:error:malformed","status":405,"detail":"The request message was malformed"}

という出力が返っているようだ。

というわけで、https化は叶わずまだ本格運用とは相成っていないのが現状。
また後日でも試してみて、上手くいったら記事にでもしようと思う。

Google Adsense

Google Adsense

-Software
-, , , , ,

Copyright© HEPtech, 2024 All Rights Reserved.