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
- 問題を再現することから始めます
- 診断データの収集 (クライアント側のエラー メッセージ、psql 出力、OpenSSL s_client出力、およびサーバー ログ)。
- サーバー パラメーター (require_secure_transport、ssl_min_protocol_version、ssl_max_protocol_version) を確認する
- 証明書チェーンとクライアント sslmode/sslrootcert 設定を確認して、プロトコル バージョン、暗号スイート、または証明書の欠落/ローテーションの不一致を特定します。
TLS 接続エラー
- TLS プロトコルバージョンの互換性をトラブルシューティングする最初の手順は、ユーザーがクライアントからの TLS 暗号化の下で Azure Database for PostgreSQL フレキシブル サーバー インスタンスにアクセスしようとしたときに表示されるエラー メッセージを特定することです。 アプリケーションとプラットフォームによっては、エラー メッセージが異なる場合があります。 多くの場合、基になる問題を示しています。
- TLS プロトコルのバージョンの互換性を確認するには、データベース サーバーとアプリケーション クライアントの TLS 構成を調べて、互換性のあるバージョンと暗号スイートがサポートされていることを確認します。
- データベース サーバーとクライアントの TLS バージョンと暗号スイートの間の不一致やギャップを分析します。 特定のオプションを有効または無効にするか、ソフトウェアをアップグレードまたはダウングレードするか、証明書またはキーを変更して解決してみてください。 たとえば、セキュリティと互換性の要件に応じて、サーバーまたはクライアントで特定の TLS バージョンを有効または無効にする必要がある場合があります。 たとえば、セキュリティで保護されておらず非推奨と見なされる TLS 1.0 と TLS 1.1 を無効にし、より安全でモダンな TLS 1.2 と TLS 1.3 を有効にする必要がある場合があります。
-
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場合、証明書のローテーションは影響を受けません。
そのため、このセクションの手順に従う必要はありません。
- 信頼されたルート ストアにある証明書の一覧を生成する
- たとえば、 Java キー ストアで信頼できる証明書の一覧をプログラムで取得できます。
- たとえば、 cacerts java キーストアを調べて、必要な証明書が既に含まれているかどうかを確認できます。
- 個々の中間証明書または個々の PostgreSQL サーバー証明書がある場合は、証明書のピン留めを使用しています。 これはサポートされていない構成です。
- 証明書のピン留めを削除するには、信頼されたルート ストアからすべての証明書を削除し、 ルート CA 証明書のみを追加します。
これらの手順を実行しても問題が発生する場合は、 Microsoft サポートにお問い合わせください。 タイトルに ICA Rotation 2026 を含めます。
証明書のピン留めの問題
クライアント アプリケーション接続文字列で sslmode=verify-full または sslmode=verify-ca 設定を使用していない場合、証明書のローテーションは影響を受けません。 そのため、このセクションの手順に従う必要はありません。
- アプリケーションで証明書のピン留めを使用しているかどうかを確認します。
- 信頼されたルート ストアにある証明書の一覧を生成します。 例えば:
- Java キー ストアの信頼できる証明書の一覧をプログラムで取得します。
- cacerts Java キーストアを調べて、必要な証明書が既に含まれているかどうかを確認します。
- 個々の中間証明書または個々の PostgreSQL サーバー証明書がある場合は、証明書のピン留めを使用しています。
- 証明書のピン留めを削除するには、信頼されたルート ストアからすべての証明書を削除し、新しい証明書を追加します。
- 更新された証明書は、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
- サーバー証明書