NextCloud multikeyencryption failed error:0308010C
CentOS Stream 9 を使った所、こんなメッセージが出てサーバサイドの暗号化ができなかったので調査しました。
multikeyencryption failed error:0308010C:digital envelope routines::unsupported
調べると Node.JS 関連の情報が出てきますが、多分違うだろうと考えて SSL 周りを調査。
- https://www.openssl.org/docs/manmaster/man7/OSSL_PROVIDER-legacy.html
- legacy
- fips
- OSSL_PROVIDER-legacy
- NODE_OPTIONS=--openssl-legacy-provider
- https://github.com/nodejs/node/issues/40455
これらの文字列からたどり着いたのは openss.cnf の以下の部分。
修正したらサーバサイドの暗号化が動く様になりました。
ただ、occ preview:pre-generate が動かなくなり、バックグラウンドでのプレビュー画像生成ができなくなります。これが意外と被害でかいんだよね。
当然ですがレガシー対応した形なので、OSとしては少しセキュア度が下がりました。
--- openssl.cnf.orig 2022-01-21 23:28:48.000000000 +0900 +++ openssl.cnf 2022-01-27 13:49:37.335117079 +0900 @@ -58,13 +58,13 @@ [provider_sect] default = default_sect -##legacy = legacy_sect +legacy = legacy_sect ## [default_sect] activate = 1 -##[legacy_sect] -##activate = 1 +[legacy_sect] +activate = 1 [ ssl_module ]
変更したあとは php-fpm を再起動して openssl.cnf の設定変更を反映させます。
systemctl restart php-fpm systemctl restart httpd
無事 サーバサイドの暗号化が動きました。一気に全ファイルを暗号化します。一応解除も試します。
# 暗号化 sudo -u apache php occ maintenance:mode --off sudo -u apache php occ encryption:enable sudo -u apache php occ encryption:encrypt-all sudo -u apache php occ encryption:status
# 暗号化解除 sudo -u apache php occ maintenance:mode --off sudo -u apache php occ encryption:decrypt-all sudo -u apache php occ encryption:disable sudo -u apache php occ encryption:status
使用容量は増えるけど、安心できるからやむを得ず。