Azure SQL Database を v12 にアップグレードした後、TLS ハンドシェイク エラーが発生するのはなぜですか?

Linda Hamilton
リリース: 2024-10-27 07:29:03
オリジナル
757 人が閲覧しました

Why am I getting a TLS Handshake error after upgrading my Azure SQL Database to v12?

v12 アップグレード後の Azure SQL Database TLS ハンドシェイク エラー

Azure SQL Database インスタンスが v12 にアップグレードされた後、TLS ハンドシェイク エラーが発生する場合があります。このエラーは、サーバーによって提示された証明書がクライアントの接続文字列で指定されたホスト名と一致しない場合に発生します。

エラーの詳細

エラー メッセージは通常、次のことを示します。証明書は、クライアント接続で使用されるホスト名以外のホスト名に対して有効です。例:

TLS Handshake failed: x509: certificate is valid for
tr12.northcentralus1-a.worker.database.windows.net,
*.tr12.northcentralus1-a.worker.database.windows.net, not [server-name].database.windows.net
ログイン後にコピー

解決策

この問題を解決するには、クライアント接続文字列を更新して次のパラメータを含めます:

  • TrustServerCertificate=True: このパラメーターは、ホスト名と一致しない場合でもサーバーの証明書を信頼するようにクライアントに指示します。
  • hostNameInCertificate=*.database.windows.net: このパラメータは、サーバーの証明書に存在するホスト名を指定します。

更新された接続文字列

更新された接続文字列は次のようになります。 :

Server=[server-name].database.windows.net;Port=1433;Database=[dbname];User
ID=[user];Password=[pass];Trusted_Connection=False;Encrypt=True;Connection
Timeout=30;TrustServerCertificate=True;hostNameInCertificate=*.database.windows.net;
ログイン後にコピー

説明

以前のバージョンの Azure SQL Database では、サーバーの証明書は常にクライアント接続文字列で指定されたホスト名と一致していました。ただし、v12 では、これは保証されなくなりました。 TrustServerCertificate を True に設定し、hostNameInCertificate に正しいホスト名を指定すると、証明書を受け入れて接続を適切に確立するようにクライアントに指示できます。

注:

Azure portal では、TrustServerCertificate を False に設定することを推奨しています。これにより、場合によっては TLS ハンドシェイク エラーが発生する可能性があります。これらのエラーが発生した場合は、TrustServerCertificate を True に設定し、hostNameInCertificate を接続文字列に追加すると、問題が解決されるはずです。

以上がAzure SQL Database を v12 にアップグレードした後、TLS ハンドシェイク エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!