次の方法で共有


TLS 接続エラーのトラブルシューティング

Important

新しい中間 CA 証明書と結果の証明書チェーンを更新するために、Azure Database for PostgreSQL の TLS 証明書ローテーションを開始しました。 ルート CA は変わりません。

クライアント構成で TLS の推奨構成が実装されている場合は、アクションは必要ありません。

証明書のローテーション スケジュール

  • Azure リージョンの米国中西部、東アジア、英国南部では、2025 年 11 月 11 日に TLS 証明書のローテーションが開始されました。
  • 2026 年 1 月 19 日以降、この証明書ローテーションは、Azure Government を含む残りの (中国を除く) リージョンまで拡張される予定です。
  • 2026 年の春節 (旧正月) の後、中国のリージョンでは、 ルート CA の 1 つに変更を含む証明書ローテーションも行われます。

クライアント構成を検証する

計画的なローテーションの前にクライアント構成を検証するには、 TLS の推奨構成を実装していることを確認します。

ルート証明書ストアの確認

最低限必要なルート証明書か、クライアントのルート証明書ストアにインストールされているルート証明書の完全なセットが必要です。

注意事項

クライアントのルート証明書ストア内の Azure ルート CA 証明書のみを信頼します。 中間 CA または個々のサーバー証明書を信頼することは避けてください。これらのプラクティスにより、Microsoft が証明書チェーンを更新したり、個々のサーバー証明書をローテーションしたりするときに、予期しない接続の問題が発生する可能性があります。

TLS 接続の状態を確認する

現在の TLS 接続の状態を確認するには、 sslinfo 拡張機能 を読み込み、 ssl_is_used() 関数を呼び出して TLS が使用されているかどうかを判断します。 接続で TLS が使用されている場合、この関数は t を返します。 それ以外の場合は、fを返します。 また、次のクエリを使用して、プロセス、クライアント、アプリケーションによる Azure Database for PostgreSQL フレキシブル サーバー インスタンスの TLS 使用状況に関するすべての情報を収集することもできます。

SELECT datname as "Database name", usename as "User name", ssl, client_addr, application_name, backend_type
   FROM pg_stat_ssl
   JOIN pg_stat_activity
   ON pg_stat_ssl.pid = pg_stat_activity.pid
   ORDER BY ssl;

OpenSSL を使用して TLS 接続をテストする

テストでは、 openssl コマンドを使用して Azure Database for PostgreSQL に接続し、TLS 証明書を表示できます。

openssl s_client -starttls postgres -showcerts -connect <your-postgresql-server-name>:5432

このコマンドは、TLS のバージョンや暗号などの低レベルのプロトコル情報を出力します。 オプション -starttls postgresを使用する必要があります。 それ以外の場合、このコマンドは TLS が使用されていないことを報告します。 このコマンドを使用するには、少なくとも OpenSSL 1.1.1 が必要です。

読み取りレプリカ

Microsoft RSA Root CA 2017 へのルート CA 移行では、新しく作成されたレプリカを、先ほど作成したプライマリ サーバーよりも新しいルート CA 証明書に配置できます。 sslmode=verify-caおよびsslmode=verify-full構成設定を使用するクライアントの場合は、新規および既存のサーバーでローテーションが完了するまで、新規および以前のルート CA 証明書を受け入れる必要があります。

Troubleshoot

  1. 問題を再現することから始めます
  2. 診断データの収集 (クライアント側のエラー メッセージ、psql 出力、OpenSSL s_client出力、およびサーバー ログ)。
  3. サーバー パラメーター (require_secure_transport、ssl_min_protocol_version、ssl_max_protocol_version) を確認する
  4. 証明書チェーンとクライアント sslmode/sslrootcert 設定を確認して、プロトコル バージョン、暗号スイート、または証明書の欠落/ローテーションの不一致を特定します。

TLS 接続エラー

  1. TLS プロトコルバージョンの互換性をトラブルシューティングする最初の手順は、ユーザーがクライアントからの TLS 暗号化の下で Azure Database for PostgreSQL フレキシブル サーバー インスタンスにアクセスしようとしたときに表示されるエラー メッセージを特定することです。 アプリケーションとプラットフォームによっては、エラー メッセージが異なる場合があります。 多くの場合、基になる問題を示しています。
  2. TLS プロトコルのバージョンの互換性を確認するには、データベース サーバーとアプリケーション クライアントの TLS 構成を調べて、互換性のあるバージョンと暗号スイートがサポートされていることを確認します。
  3. データベース サーバーとクライアントの TLS バージョンと暗号スイートの間の不一致やギャップを分析します。 特定のオプションを有効または無効にするか、ソフトウェアをアップグレードまたはダウングレードするか、証明書またはキーを変更して解決してみてください。 たとえば、セキュリティと互換性の要件に応じて、サーバーまたはクライアントで特定の TLS バージョンを有効または無効にする必要がある場合があります。 たとえば、セキュリティで保護されておらず非推奨と見なされる TLS 1.0 と TLS 1.1 を無効にし、より安全でモダンな TLS 1.2 と TLS 1.3 を有効にする必要がある場合があります。
  4. Microsoft RSA Root CA 2017 で発行された最新の証明書は、Digicert Global Root G2 CA によってクロス署名されたチェーン内の中間証明書を持っています。 一部の Postgres クライアント ライブラリでは、 sslmode=verify-full または sslmode=verify-ca 設定を使用しているときに、中間証明書でクロス署名されたルート CA 証明書で接続エラーが発生する可能性があります。 その結果、代替の信頼パスになります。

これらの問題を回避するには、必要なすべての証明書をクライアント証明書ストアに追加するか、 sslrootcert パラメーターを明示的に指定します。 または、 PGSSLROOTCERT 環境変数を、Microsoft RSA ルート CA 2017 ルート CA 証明書が配置されているローカル パスに設定します(既定値の %APPDATA%\postgresql\root.crtから)。

証明機関の問題

クライアント アプリケーション接続文字列でまたはsslmode=verify-full設定を使用sslmode=verify-ca場合、証明書のローテーションは影響を受けません。 そのため、このセクションの手順に従う必要はありません。

  1. 信頼されたルート ストアにある証明書の一覧を生成する
    1. たとえば、 Java キー ストアで信頼できる証明書の一覧をプログラムで取得できます。
    2. たとえば、 cacerts java キーストアを調べて、必要な証明書が既に含まれているかどうかを確認できます。
  2. 個々の中間証明書または個々の PostgreSQL サーバー証明書がある場合は、証明書のピン留めを使用しています。 これはサポートされていない構成です。
  3. 証明書のピン留めを削除するには、信頼されたルート ストアからすべての証明書を削除し、 ルート CA 証明書のみを追加します。

これらの手順を実行しても問題が発生する場合は、 Microsoft サポートにお問い合わせください。 タイトルに ICA Rotation 2026 を含めます。

証明書のピン留めの問題

クライアント アプリケーション接続文字列で sslmode=verify-full または sslmode=verify-ca 設定を使用していない場合、証明書のローテーションは影響を受けません。 そのため、このセクションの手順に従う必要はありません。

  1. アプリケーションで証明書のピン留めを使用しているかどうかを確認します。
  2. 信頼されたルート ストアにある証明書の一覧を生成します。 例えば:
    1. Java キー ストアの信頼できる証明書の一覧をプログラムで取得します。
    2. cacerts Java キーストアを調べて、必要な証明書が既に含まれているかどうかを確認します。
  3. 個々の中間証明書または個々の PostgreSQL サーバー証明書がある場合は、証明書のピン留めを使用しています。
  4. 証明書のピン留めを削除するには、信頼されたルート ストアからすべての証明書を削除し、新しい証明書を追加します。
  5. 更新された証明書は、Microsoft の公式リポジトリ (Azure 証明機関の詳細) からダウンロードできます。

これらの手順を実行しても問題が発生する場合は、Microsoft サポートにお問い合わせください。 タイトルに ICA Rotation 2026 を含めてください。

証明書チェーンを確認する

古いチェーン

  • DigiCert Global Root G2
    • Microsoft Azure RSA TLS Issuing CA 03 / 04 / 07 / 08
    • サーバー証明書

新しいチェーン

  • DigiCert Global Root G2
    • Microsoft TLS RSA Root G2
    • Microsoft TLS G2 RSA CA OCSP 02 / 04 / 06 / 08 / 10 / 12 / 14 / 16
    • サーバー証明書