VanillaOS 3を試す

イメージ
以前仮想マシンで試したものの、あまり時間が取れず、しっかり使えていなかった。 余っている(テスト用においてある)Thinkpad x390に実際に入れて試してみた。 Vanilla OS ところが、サイトに行ってみると少し前(2026-08-24)にUpdateされており2→3へと2年ぶりの更新。 簡単に言うとイミュータブルなOSで、OS本体の書き換えは基本的にできず、A/Bパターンで起動する必要がある。 Aでインストールしたものは、Bに入れられ、起動時にBを選択するとインストール後の状態で使える仕組み。不具合があればまたAに戻せるというもの。 若干、コマンド類が変わってしまっているらしい。 イミュータブルなOSは、これまでにも試したものの日本語がうまく扱えないなど常用するには結構厳しいものがあった。 とはいえ、時間の経過で様々なアプリケーションがFlatpakやAppImageで出揃ってきたので、今回テストすることにした。 インストーラ自体は小さく、起動用のUSBに書き込んで起動すればOK。 インストール完了後、マシン名やユーザ名を入力することで、環境設定は完了。 基本的にはFlatpakでインストールするのが正しい使い方らしいので、必要そうなものを入れてみた。 vscode Brave Browser LMStudio DBeaver-ce Thunderird Obsidian opencode LibreOffice など・・・ どれも、サクサクと動作して気持ちいい。 日本語環境 さて、問題は日本語環境だが、調べてみるとflatpakにmozcもfcitx5も存在していた。 これんらばと思い、入れてみる。 https://note.kurodigi.com/vanillaos-fcitx5-mozc/ が、vanillaOS2の記事のようだけれども、同じ手順でOKだった。 すばらしい。 いつも使用しているmozcが動作するようになった。 ところが、LMStudioでハマった… flatpak特有の問題 LMStudioはすんなり入り、LMLinkでローカルのAIサーバも使用可能。 で、URLを指定したときにWEBサイトを取りに行かせて、処理させるMCPでハマった。 https://github.com/modelcontextprotocol/servers...

SSL自己署名証明書の作成

マルチドメインを管理していて

これまで1台のサーバ(仮想も含め)で1ドメインの管理をこれまで行ってきた。
今回、複数のドメインを1台で管理した方が良い案件だったので、設定することにした。

webサーバはapache2のvirtual設定でOK。
IPは一つだけで、名前ごとに異なるコンテンツを返す。

メールはpostfix+dovecotで、virtual mailboxで管理することに。

ftpは、chrootして、各ユーザのhome以下のweb用ディレクトリに配置。

ここまでは、別に難しくはない。

テストでは、Thunderbirdを利用していたのが、トラブルを見つけにくくしていた。
Thunderbirdは、知らないSSL証明書を受け取った場合、例外として処理するかどうかを自分で設定できる。

僕が設定してテストしている時に、例外指定をしたため、以後警告も何も言わずに送受信ができていた。

ところが、WindowsLiveやOutlook/OutlookExpressは、起動時に確認され、OKしても再度メーラーを起動すると、再び警告が出てくる。
WindowsLiveだと「接続しているサーバーは、確認できないセキュリティ証明書を使用しています。」って、ええやんか〜。

問題はSSLだった

オレオレ証明書(自己署名証明書)の使い方と、設定の計画にあった。
デフォルトでは、勝手に証明書を作ってくれて、それを使えば基本的には問題ない。
(というか、これまで問題になったことはない)

ただし、先にも書いたように1マシン=1ドメインの場合だ。
ホスト名でCN名を埋め込んで証明書を作るため、マルチドメインの場合の処理が厄介だった。

今回はvpsを借りているので、デフォルトでは借りたvpsによる名前のホストで作ってくれている。
そこで、通常通りSSLを使用して、設定してみると…。

う〜む。
メーラーのサーバ設定を、オリジナルのドメインにしたり、仮想ドメインにしたり、IPにしたりしてみたがダメ。

サーバから証明書を持ってきて、登録するが上手くいかない。

あれこれやっているうちに、vpsがデフォルトで付けてくれたマシン名だとSSLで警告が出なくなることで閃いた。

利用するマシン名で証明書を作りなおしておけば、いいんじゃね?
各メーラーにはサーバ名はIPで振る約束になっている。これは好都合。

そこで、IP名でのCN名を埋め込んだ証明書を作成して、それを元にSSLを通すことに。

自己署名証明書の作成

手順は「postfix、dovecot の証明書の作成(Ubuntu 8.04)」が分かりやすかった。

重要なので、再掲しておく。
$ sudo -s
# cd /etc/ssl/private
# openssl genrsa -des3 1024 > mail.key
パスフレーズ聞かれるので、とりあえず覚えていられる程度のものでOK。
# chmod 600 mail.key
# openssl rsa -in mail.key -out mail.key
これでパスワードを解除したもので上書きしておく。この作業をしておかないと、パスフレーズの入力を求められる。するとプログラムが停止してしまうので…。
(先に使ったパスフレーズが必要)

# cd ../certs
# openssl req -utf8 -new -key ../private/mail.key -x509 -days 3650 -out mail.pem -set_serial 0
として、パブリックキーを生成。とりあえず有効期限10年程度の証明書にしてみた。(何度も設定したくないしね)

Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Aichi
Locality Name (eg, city) []:Nagoya
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Hoge Ltd
Organizational Unit Name (eg, section) []:xxxx-net
Common Name (eg, YOUR name) []:aaa.bbb.ccc.ddd ←IPで設定
Email Address []:root@hoge.com

postfixの設定

/etc/postfix/main.cfを編集
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
となっているのを、先ほど作ったmail.keyとmail.pemに修正。
smtpd_tls_cert_file=/etc/ssl/certs/mail.pem smtpd_tls_key_file=/etc/ssl/private/mail.key
これで、postfixを再起動。
 # service postfix restart
/etc/dovecot/conf.d/10-ssl.confを編集
ssl_cert = </etc/ssl/certs/mail.pem
ssl_key = </etc/ssl/private/mail.key
保存したら、dovecotを再起動。
# service dovecot restart

クライアント用の処理

PC用に証明書を変換する。
# openssl x509 -in mail.pem -outform DER -out mail.der
このファイルを、web経由でも、USBメモリでもftpでもなんでもいいので、PCに持ってくる。(以下Windows上の作業)

mail.derをダブルクリック。
「証明書のインストール」→「証明書のインポートウィザード」→「証明書を次のストアに配置する」→「信頼されたルート証明機関」

最後に警告が出るが、OKで完了。
これで証明書がインポートされ、しかも信頼していることになる。

メーラーを起動しても、何も言わずに送受信できるようになった。

ふ〜。
ここまでたどり着くのに、予想以上に時間がかかりましたわ…。

まあセキュリティが強化されているのは分かるけど、Thunderbirdくらいに自分の責任で、証明書を信用するってことにしてくれれば、こんなに手間はかからないのに…。

良し悪しですな…。

無事使えるようになって、めでたしめでたしとな。
チカレタゎ。


コメント

このブログの人気の投稿

MEGAにも弱点があった?

Ubuntu24.04 でGUIが死んだ

VirtualBoxでUSBを使う方法が分かった!