
2026/02/10 5:31
**Let’s Encrypt の今後の変更点と XMPP サーバー運用者への影響** - **2026‑02‑01 以降、Let’s Encrypt は新しい証明書を発行しなくなります。** • 現在お持ちのすべての証明書は、この日付以前に更新してください。 - **証明書期限切れ時の挙動** • 更新が遅れると TLS が無効になり、クライアント接続が切断されます。 • 最近では、一部の XMPP クライアントが期限切れ証明書を即座に拒否するようになっています。 - **新しい発行ポリシー** • ドメイン検証(DV)証明書のみが発行され、拡張検証(EV)は提供されません。 • 証明書の Subject フィールドにはドメイン名だけが記載され、組織名は含まれません。 - **XMPP サーバー設定への影響** • `xmppd.conf` を更新し、新しい証明書ファイル(`fullchain.pem`, `privkey.pem`)を参照させてください。 • TLS 設定の再読み込みはダウンタイム無しで行う必要があります(例:`systemctl reload xmppd`)。 - **自動更新の推奨** • *certbot* や *acme.sh* のような ACME クライアントを使用し、少なくとも月2回は cron ジョブで実行してください。 • ワイルドカード証明書(`*.yourdomain.tld`)を利用する場合は DNS‑01 チャレンジが解決できることを確認してください。 - **監視とアラート** • `certwatch` や独自スクリプトで証明書の有効期限に関するアラートを設定します。 • 既存のモニタリングスタック(Prometheus、Grafana)へ統合しましょう。 - **フォールバック戦略** • 最後に有効だった証明書ペアを安全なストレージにバックアップしておきます。 • 更新が失敗した場合は、サービス復旧まで古い証明書を一時的に使用します。 --- ### クイックスタートチェックリスト 1. **現在の証明書状態を確認** ```bash openssl x509 -in /etc/xmpp/fullchain.pem -noout -dates ``` 2. **証明書を更新(certbot の例)** ```bash certbot renew --deploy-hook "systemctl reload xmppd" ``` 3. **サーバーの TLS 設定を検証** ```bash xmppd -t ``` 4. **監視を設定** - cron に `certwatch` を追加: ```cron 0 3 * * * /usr/local/bin/certwatch --days=30 ``` 5. **手順を運用マニュアルに記録**。 これらのステップを実行することで、Let’s Encrypt が新しい発行ポリシーへ移行した後も XMPP サーバーは中断なく TLS サービスを提供し、クライアント側の期待に沿った互換性を保てます。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
(原文は既に正確で明瞭です。改善の必要はありません。)
元の要約の繰り返し:
Let Encrypt は現在、XMPP サーバー間接続をブロックする可能性があるサーバー専用 TLS 証明書を発行しています。この機能は、キー使用チェックを実施するソフトウェアに対して有効であり、サーバーが新しい証明書タイプをサポートしない場合にのみ影響します。変更は 2026 年 2 月 11 日に発表されました。Prosody はすでにこれらの証明書を受け入れますが、ejabberd と Openfire(25.08 より前)の古いバージョンは拒否し、ダイヤルバックが有効でない限り接続失敗を招く可能性があります。「Could not authenticate to remote server」のようなログエラーが問題を確認します。
Prosody のサポートは一部の XMPP サーバーが準備できていることを示していますが、多くは互換性がなくアップグレードが必要です。IETF はまだ XMPP における TLS クライアント/サーバーの役割を明確にしていないため、慣行は標準化されていません。ブラウザベンダーは「ブラウザ専用」証明書を非ブラウザアプリで使用することを推奨せず、CA エコシステムに発行ポリシーの変更を求める圧力がかかっています。
レガシー XMPP ソフトウェアの運営者は、ejabberd ≥ 25.08 または新しい Openfire に速やかにアップグレードするか、ダイヤルバックを有効化して接続性を維持すべきです。テストは XEP‑0199 を介して
le‑tlsserver.badxmpp.eu へ ping を送ることで行えます。成功した IQ 応答が受信されれば証明書の受け入れが確認できます。更新しない場合、サーバー間接続の障害が発生し、XMPP に依存するユーザーや組織に影響を与える恐れがあります。本文
2026年2月6日
The Prosody Teamより
2026年2月11日からLet’s Encryptが発行する証明書に変更を加える予定です
Prosodyの運用者としては、基本的には何も手動で設定する必要はありません。しかし、新しい証明書を使用しているサーバーは、ネットワーク上の他のXMPPサーバーへ接続できないケースが生じる可能性があります。
証明書の基礎知識
まず、証明書に関する簡単な背景です。
Let’s Encryptのような認証局(CA)は、ドメインを所有・管理していることを確認したうえで、その検証結果を証明する証明書を発行します。この証明書は、他者へ「このドメインを所有しています」という証拠として提示できます。証明書取得には
certbot ツールや ACME プロトコルに対応した多数のツールが利用可能です。
XMPPクライアントがサーバーに接続するとき、クライアントはログイン先ドメイン用に有効な証明書をサーバーから提示されることを期待します。
同様に、サーバー間(server‑to‑server、通称 s2s やフェデレーション)で接続する際にも証明書が使用されます。これにより、スプーフィングなどの攻撃を防止できます。たとえば、自身のサーバーが
user@example.com から来たメッセージを受け取った場合、そのメッセージが送信元であるサーバーから example.com 用に有効な証明書が提示され、検証済みであることを確認できます。
証明書の利用制限
多くの人は、証明書には検証されたドメイン名が含まれていると知っています。しかし、証明書には署名したCAや有効期間、各種メタデータなど他の情報も含まれています。
さらに、証明書の一部では「この証明書をどのように使用できるか」の制限が指定できます。たとえば、あるCA自身の証明書は「他の証明書を署名する」ことが許可されている旨を示します。同様の制限は「署名用」「暗号化用」といった目的に対しても設定可能です。
このような拡張機能の一つとして Extended Key Usage があり、証明書が サーバー認証 か クライアント認証 に使用されるかを限定できます。
何が変わるのでしょう?
Let’s Encryptは現在、証明書に「サーバー認証」と「クライアント認証」の両方の用途を許可しています。しかし、2026年2月11日以降はデフォルトで「サーバー認証」専用の証明書のみを発行する予定です。本稿ではこの新しい証明書を server‑only 証明書と呼びます。
仕様上、このような証明書はクライアントがサーバーに接続する際には使用できないと解釈されることがあります。XMPPはサーバー間の接続を多用するため、TLS の規格では接続を開始した側(つまり「クライアント」)が TLS クライアントとして扱われます。
OpenSSL などの一般的な TLS ライブラリや API は証明書の key usage フィールドを自動で検証し、「client authentication」の目的が無い証明書で接続が来た場合に失敗します。これにより、XMPP(およびサーバー間通信を行う他のプロトコル)でのサーバー同士の認証が壊れる恐れがあります。
Prosodyへの影響は?
直接的にはありません。Let’s Encrypt が server‑only 証明書を発行する最初の CA ではありません。数年前に、Prosody はサーバー間接続で使用される server‑only 証明書を受け入れるよう変更しており、これは XMPP にとって正しいアプローチだと考えています。
したがって Prosody は Let’s Encrypt の新しい server‑only 証明書を持つサーバーからの接続を受け付けます。
ただし、この挙動は標準化されておらず、XMPP コミュニティ外での議論もあります。現在の CA エコシステムは Web ブラウザベンダ(Google, Apple, Microsoft, Mozilla)が主導しており、ブラウザ以外のアプリケーションが「Web 用にしか証明書を発行しない」と言われると、非協力的になるケースもあります。
IETF でサーバーとクライアントの役割を明確化する仕様更新案は合意形成できませんでした。
XMPP ネットワークへの影響は?
Prosody は server‑only 証明書を受け入れますが、他のサーバー実装では Prosody が持つ代替検証ロジックが無いか、最近追加されたばかりです。
互換性のあるサーバー
- ejabberd(25.08 以降)
- Openfire
非対応バージョンを運用している場合は、フェデレーションで問題が発生しないよう、できるだけ早く上記に合致するバージョンへアップグレードしてください。リスト外のサーバーソフトウェアはテストされていないため、server‑only 証明書を使用したサーバーからの接続が受け入れられない可能性があります。
他のサーバーではどうなる?
代替検証を実装していない(または更新されていない)サーバーは、他のすべてのサーバーの証明書を s2s 接続開始時に無効とみなします。多くのサーバーはまだダイアルバックプロトコルを有効にしているため、DNS を利用したフォールバック認証で接続が成功する場合があります。ただし、どちらか一方でもダイアルバックが無効になっている、または対象サーバーが有効な証明書を必須としていると、サーバー間接続は完全に失敗します。
Prosody のログに以下のようなエラーが現れることがあります。
Server-to-server connection failed: Could not authenticate to remote server
この場合、リモートサーバー側の運用者はソフトウェアを更新する必要があります。
サーバーのテスト方法
le-tlsserver.badxmpp.eu に XMPP ping(XEP‑0199)を送信してください。成功して IQ レスポンスが返ってくれば、サーバーは server‑only 証明書を受け入れています。レスポンスが無い場合は、s2s 接続失敗に関するログを確認し、必要に応じて設定やソフトウェアの更新を検討してください。