keeweb-desktop

超ご無沙汰です。またKeeWebをローカルのApacheに入れようと、オレオレSSL証明書を入れて、WebDavの設定をしようかというところではたと気づきました。Ubuntu-20.04にはkeeweb-desktopなんてもんがある!

https://keeweb.info/ から KeeWeb-1.18.7.linux.x64.deb を持ってきて入れれば、WebDavに置いてた .kdbx ファイルをそのまま読めるじゃないか!めんどうなWebDavの設定なんかしなくて良くなったよ。入れたばっかのUbuntu-20.04だとlibgconf-2-4とlibappindicator1がないと怒られました。考えてみれば最初からapt install keeweb-desktopしたほうが良かったね。なお、Windows版もあります。

ところで、以前のようにサーバとして入れようと調べたら、なぜか皆Dockerを使って入れるようになってました。これとか。https://www.howtoforge.com/how-to-install-keeweb-password-manager-ubuntu-20-04/ もう必要なくなったのでなぜだかを調べる気力もなし。

KeeWebサーバの構築

また間があいてしまったけど、KeeWebについて書きます。

パスワード管理にはKeePassを使ってます。けれどそのデータベースを外部クラウドに置くのは不安なので、Raspberry PiにownCloudのサーバ立てて、家の中だけで使えるようにしてます。これでLinux、Windows、Android、iOSから使えます。

しかし、Chromebook/ChromiumOSにはKeePassクライアントがないのでちょっと困ります(厳密に言えばないこともないのだけど、うまく設定できなかった)。そこでKeeWebの登場。

これはHTMLで作ったKeePassクライアント。KeePassのデータベース自体はWebDavに置きます。KeeWebのサーバとWebDavのサーバはべつにどこにあってもいいのだけど、今回はどっちもownCloudサーバと同じRaspberry Piに置きます。

KeeWebのインストール自体は簡単で、ここを見ながらやってください。ただし、https経由じゃないといろいろ不都合があるので、サーバのApacheの設定はややめんどう(ここを参考にしましょう https://www.deep-blog.jp/engineer/archives/11612/ )。

そして、もっとやっかいなのはWebDavの設定のほうで、読むのは簡単なんだけど、パスワードを変更や追加したときにデータベースに反映させる(同期)のがうまくできませんでした。

いろいろ調べた末、Apacheで以下のモジュールを有効にして、WebDAV関係のApacheの設定を追加すると解決しました。

sudo a2enmod rewrite
sudo a2enmod header

<Directory "/var/www/html/webdav">
  DAV On
  AuthType Basic
  AuthName "webdav"
  Require all granted
  Options Indexes FollowSymLinks
  Header always set Access-Control-Allow-Origin "*"
  Header always set Access-Control-Allow-Headers "origin, content-type, cache-control, 
    accept, authorization, if-match, destination, overwrite"
  Header always set Access-Control-Expose-Headers "ETag"
  Header always set Access-Control-Allow-Methods "GET, HEAD, POST, PUT, OPTIONS, MOVE, 
    DELETE, COPY, LOCK, UNLOCK"
  Header always set Access-Control-Allow-Credentials "true"
  RewriteEngine on
  RewriteCond %{REQUEST_METHOD} OPTIONS
  RewriteRule ^(.*)$ blank.html [R=200,L,E=HTTP_ORIGIN:%{HTTP:ORIGIN}]
</Directory>