クライアントは、「@」の後ろの部分である 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