Important
Microsoft は、中間 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 が必要です。
読み取りレプリカ
ルート CA の Microsoft RSA Root CA 2017 への移行が行われると、新しく作成されたレプリカでは、プライマリ サーバーが以前に作成された場合、プライマリ サーバーよりも新しいルート 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 暗号化で Azure Database for PostgreSQL フレキシブル サーバー インスタンスにアクセスしようとしたときに表示されるエラー メッセージを特定します。 アプリケーションとプラットフォームによっては、エラー メッセージが異なる場合があります。 多くの場合、基になる問題を示しています。
- データベース サーバーとアプリケーション クライアントの TLS 構成を調べて、互換性のあるバージョンと暗号スイートがサポートされていることを確認します。
- データベース サーバーとクライアントの TLS バージョンと暗号スイートの間の不一致やギャップを分析します。 特定のオプションを有効または無効にするか、ソフトウェアをアップグレードまたはダウングレードするか、証明書またはキーを変更して解決してみてください。 たとえば、セキュリティと互換性の要件に応じて、サーバーまたはクライアントで特定の TLS バージョンを有効または無効にする必要がある場合があります。 セキュリティで保護されていないと非推奨と見なされる TLS 1.0 と TLS 1.1 を無効にし、TLS 1.2 と TLS 1.3 を有効にする必要がある場合があります。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
- サーバー証明書