Fedora 36 をインストールしました。今回は、色々変更点があります。

  • さくら VPS (v4) → さくら VPS (v5) に移行しました。技術的な違いは非公表のためよく分かりませんが、年間契約で 1,210円安くなりました。
  • Kickstart による自動インストールを採用しました。これについては、後ほど別記事で書きたいと思います。
  • IPv6 を有効にしました。というよりは無効にするのを止めました、という方が正しいかもしれません。まだ積極的に使っていこうという感じではないです。

今回は、あまりトラブルに遭遇しませんでした。1件だけです。

クライアント証明書が macOS / iOS でインポートできない

Fedora 36 の OpenSSL で発行したクライアント証明書(.p12 ファイル)が、macOS / iOS にインポートできませんでした。macOS Big Sur(11.6.7)、iOS(15.5)の両方で発生しています。

エラーが起きました。項目を読み込めません。PKCS12読み込み中にMAC検証に失敗しました(不正なパスワード)

OpenSSL のバージョンを確認します。

$ openssl version
OpenSSL 3.0.3 3 May 2022 (Library: OpenSSL 3.0.3 3 May 2022)
$

Fedora 36 では 3.0.3 です。Fedora 35 では、1.1.1n でした。メジャーバージョンがいきなり上がっていてビックリですが、歴史的な経緯でこうなっています。Fedora 35 が間違ったバージョンの OpenSSL を使っていたわけではありません。

ヘルプを見ます。

$ openssl pkcs12 -help
Usage: pkcs12 [options]

General options:
 -help               Display this summary
 -in infile          Input file
 -out outfile        Output file
 -passin val         Input file pass phrase source
 -passout val        Output file pass phrase source
 -password val       Set PKCS#12 import/export password source
 -twopass            Separate MAC, encryption passwords
 -nokeys             Don't output private keys
 -nocerts            Don't output certificates
 -noout              Don't output anything, just verify PKCS#12 input
 -legacy             Use legacy encryption: 3DES_CBC for keys, RC2_CBC for certs
 -engine val         Use engine, possibly a hardware device

...
$ 

今回の事象の対策としては、当面の間、以下のように、オプションスイッチ -legacy を付けて .p12 ファイルを出力します。

$ openssl pkcs12 -export -legacy \
    -in    user@example.com.cert.pem \
    -inkey user@example.com.key.pem \
    -out   user@example.com.p12
Enter Export Password:
Verifying - Enter Export Password:
$ 

これで macOS / iOS でインポートできるファイルが出力されます。どうやら、現時点では、macOS / iOS は新しい .p12 ファイルの形式、もしくは暗号化方式に未対応ということのようです(具体的に何かは調べてません)。

uWSGI が復活した

これはトラブルではなく、うれしい変更です。再び標準レポジトリから uWSGI がインストールできるようになりました。pip からインストールするのをやめて、レポジトリからインストールする方法に戻しました。

後日談:一部ログファイルがローテートされていない

(2022-07-27 追記)

Fedora 36 をインストールしてから、およそ一ヶ月経過しましたが、ふと /var/log を見たところ、一部のログファイルがローテートしていないことに気付きました。

/etc/logrotate.d/rsyslog がありません。パッケージ rsyslog にも入っていません。オペミスで消してしまったわけではなさそうです。一応、一つ前のテスト環境は残しているので確認しましたが、Fedora 35 では、パッケージ rsyslog/etc/logrotate.d/rsyslog が入っています。

$ ls /etc/logrotate.d/rsyslog
ls: '/etc/logrotate.d/rsyslog' にアクセスできません: そのようなファイルやディレクトリはありません
$ rpm -ql rsyslog | grep /etc
/etc/pki/rsyslog
/etc/rsyslog.conf
/etc/rsyslog.d
/etc/sysconfig/rsyslog
[root@seinolab ~]# 

パッケージ rsyslog-logrotate に分離されたらしいので、これを追加でインストールします。

$ sudo dnf install -y rsyslog-logrotate

インストール済み:
  rsyslog-logrotate-8.2204.0-1.fc36.x86_64                                                                                                

完了しました!

$ rpm -ql rsyslog-logrotate
/etc/logrotate.d/rsyslog
$

ファイル一個だけのパッケージです。ここまでやるか、という感じもしますが…。

以上、テスト環境で数日動かしただけでは、発見できない設定ミスがあるという教訓でした。