在 Azure Cosmos DB for PostgreSQL 中設定 TLS
適用於: Azure Cosmos DB for PostgreSQL (由 PostgreSQL 的超大規模 (Citus) 資料庫延伸模組提供)
協調器節點需要用戶端應用程式才能與傳輸層安全性 (TLS) 連線。 在資料庫伺服器與用戶端應用程式之間強制執行 TLS 有助於讓資料在傳輸中保持機密。 下面所述的額外驗證設定也會防止「中間人」攻擊。
強制使用 TLS 連線
應用程式會使用「連接字串」來識別連接的目的地資料庫和設定。 不同的用戶端需要不同的設定。 若要查看常見用戶端所使用的連接字串清單,請參閱 Azure 入口網站中適用於您叢集的連接字串一節。
TLS 參數 ssl
和 sslmode
會根據連接器的功能而有所不同,例如 ssl=true
或 sslmode=require
或 sslmode=required
。
確定您的應用程式或架構支援 TLS 連線
某些應用程式架構預設不會針對 PostgreSQL 連線啟用 TLS。 不過,如果沒有安全連線,應用程式就無法連線到協調器節點。 請參閱您的應用程式文件,以了解如何啟用 TLS 連線。
需要憑證驗證才能啟用 TLS 連線能力的應用程式
在某些情況下,應用程式需要從受信任憑證授權單位 (CA) 憑證檔案 (.cer) 所產生的本機憑證檔,才能安全地連接。 用來連線至 Azure Cosmos DB for PostgreSQL 的憑證位於 https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem。 下載憑證檔案,並將其儲存至您慣用的位置。
注意
若要檢查憑證的真實性,您可以使用 OpenSSL 命令列工具來驗證其 SHA-256 指紋:
openssl x509 -in DigiCertGlobalRootG2.crt.pem -noout -sha256 -fingerprint
# should output:
# CB:3C:CB:B7:60:31:E5:E0:13:8F:8D:D3:9A:23:F9:DE:47:FF:C3:5E:43:C1:14:4C:EA:27:D4:6A:5A:B1:CB:5F
使用 psql 連線
下列範例會示範如何使用 psql 命令列公用程式連線到協調器節點。 使用 sslmode=verify-full
連接字串設定來強制執行 TLS/SSL 憑證驗證。 將本機憑證檔案路徑傳遞至 sslrootcert
參數。
以下是 psql 連接字串的範例:
psql "sslmode=verify-full sslrootcert=DigiCertGlobalRootG2.crt.pem host=c-mydemocluster.12345678901234.postgres.cosmos.azure.com dbname=citus user=citus password=your_pass"
提示
確認傳遞給 sslrootcert
的值與您所儲存憑證的檔案路徑相符。
注意
針對密碼,請使用您的連線密碼或Microsoft Entra ID 令牌。 如需詳細資訊,請參閱驗證選項。
下一步
透過 Azure Cosmos DB for PostgreSQL 中的防火牆規則進一步增加安全性。