5

ejabberd が、通信エンティティ間の安全な接続のために STARTTLS ネゴシエーションを使用することを推奨していることを読みました。ejabberd をインストールすると、デフォルトで TLS 証明書が付属しています。

では、なぜ証明書を購入してインストールする必要があるのでしょうか? デフォルトの証明書があるため、認証局から新しい証明書を購入する目的は何ですか?

マシンに ejabberd を展開すると、デフォルトの証明書がドメインにどのように使用されますか? デフォルトの証明書はクライアントによってどのように検証されますか?

4

2 に答える 2

1

クライアントは、「@」の後ろの部分である Jabber ID (JID) のドメイン名に対して証明書が発行されているかどうかを確認します。(他にもオプションはありますが、ブラウザ ベンダーが CA に対して強制するポリシーと互換性がないため、実用的ではありません。)

認証局 (CA) との取引関係が既にない限り、Let's Encryptを使用し、自己署名証明書を使用しないことをお勧めします。

これを自動化し、Let's Encrypt サーバーに優しくするためのいくつかの手順は、こことリンクされた wiki ページにあります。

要約 (Ubuntu 16.04 LTS を実行していると仮定し、ドメインexample.orgで実行し、 ejabberdの証明書のみを使用したいとします):

/usr/local/sbin/auto-renew-letsencrypt次の内容で作成します。

#!/ビン/バッシュ
# 更新予定の Let's Encrypt 証明書をすべて更新する
t=`mktemp`
# エラーが返されない限り静かにしてください
letencrypt 更新 > $t || 猫$t
# フックは、Ubuntu 16.04 LTE に同梱されている `letsencrypt` ではまだサポートされていません
# 大雑把にエミュレート --renew-hook; 診断メッセージが変更されると中断します
if grep -q "次の証明書は更新されました" $t; それから
  cat /etc/letsencrypt/live/ example.org /{privkey,fullchain}.pem > /etc/ejabberd/ejabberd.pem
  サービス ejabberd リロード
フィ
rm $t

次のコマンドを実行して、証明書と自動更新を作成して有効にします

apt installletsencrypt
letsencrypt certonly --standalone --domain example.org 
cat /etc/letsencrypt/live/ example.org /{privkey,fullchain}.pem > /etc/ejabberd/ejabberd.pem
chown ejabberd:ejabberd /etc/ejabberd/ejabberd.pem
chmod 640 /etc/ejabberd/ejabberd.pem
chmod 755 /usr/local/sbin/auto-renew-letsencrypt
echo $(($RANDOM % 60)) $((RANDOM % 6)) "* * * root /usr/local/sbin/auto-renew-letsencrypt" > /etc/cron.d/auto-renew-letsencrypt
于 2017-07-07T09:30:15.627 に答える