Apache用のGnuPGキーリングの作成

Apache用のGnuPGキーリングの作成

シナリオは次のとおりです。 GnuPGを使用して2つのWebサーバー間のデータを暗号化します。 RHELでは1つです。 GnuPGはcgiスクリプトアクセスを介して暗号化と復号化を実行します。したがって、Apacheユーザーがアクセスできるキーリングが必要です。 Red Hatではこれが難しいことが判明しましたが、Ubuntuでは簡単に設定できました。私が試したことは次のとおりです。たぶん、誰かがこれを達成するより良い/簡単な方法を持っているかもしれません。

Apacheユーザーになりました

su -s /bin/bash apache

走っている間

gpg --gen-key

/var/wwwに.gnupgディレクトリを作成できなかったため、ディレクトリを作成し、所有者をapache.apacheに設定しました。これでキーを生成すると

can't connect to `/var/www/.gnupg/S.gpg-agent': No such file or directory
gpg-agent[26949]: command get_passphrase failed: Operation cancelled
gpg: cancelled by user
gpg: Key generation canceled.

それで、いくつかのマニュアルページ(そしてインターネット検索)を読んだ後、このファイルを作成しました。

mknod -m 700 S.gpg-agent p

今は理解

can't connect to `/var/www/.gnupg/S.gpg-agent': Connection refused
gpg-agent[26949]: command get_passphrase failed: Operation cancelled
gpg: cancelled by user
gpg: Key generation canceled.

私はよく知らない領域に入っていたので、それ以来どこにも行くことができませんでした。私はこれがbash設定ファイルなどを持っているので、実際にはユーザーではなくApacheに関連していると仮定します。では、どこから始めるべきですか?

ベストアンサー1

これはデバイスファイル権限の問題かもしれません。pinentry継承されたファイル記述子を使用する代わりに、渡されたTTYに直接アクセスしようとしましたが、機能しませんでした。

ttyシェルで実行して結果ls -l /dev/pts/1を見ると、apacheアクセスできないことがわかります。

また、実行することができます

strace -o gpg.strace -f -e trace=open gpg --gen-key

そして、次のようなものを見つけることもできます

open("/dev/pts/1", O_RDONLY)      = -1 EACCES (Permission denied)

危険な解決策は、(一時的に)コンソールapacheへのrootアクセスを許可することです...(chown apache /dev/pts/1)。より良い解決策は実際のログインをすることですapache

これはキー生成にのみ影響します。他のユーザーとしてキーペアを作成、エクスポートし、アカウントにインポートすることもできますapache

おすすめ記事