Azure Database for PostgreSQL における TLS 証明書ピン留めとベストプラクティス
TLSは、Azure Database for PostgreSQLのクライアントとサーバー間のデータを暗号化し、サーバー証明書は信頼されたCAによって発行されます。証明書ピンニングは、デフォルトのトラストストアではなく、特定の証明書への信頼を制限するクライアントサイドのセキュリティメソッドです。サーバーは、クライアントでピンニングが構成されているかどうかを検出できず、TLSハンドシェイクの成功または失敗のみを観測します。証明書ピンニングは、歴史的に中間者攻撃保護に使用されてきましたが、特に証明書ローテーション中に運用上の脆弱性を導入します。サーバー証明書またはCAが変更されると、ピンニングされたクライアントは接続エラーを経験します。代わりに、個々の証明書ではなくルートCAを信頼するCAベースの信頼モデルが推奨されます。クライアントは、Azureで文書化されたルートCAに対して標準的なTLS検証を使用し、柔軟で最新のトラストストアを維持する必要があります。sslmode=verify-caまたはsslmode=verify-fullのようなPostgreSQL構成は、ピンニングを意味することなく信頼されたCAに対して検証するため、好ましいです。CAローテーション中、クライアントは移行が完了するまで古いCAを保持しながら新しいルートCAを追加する必要があります。この組み合わせたCAアプローチは、中断のない検証を保証し、アプリケーションが証明書の変更に対して回復力を維持できるようにします。