「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Azure SQL Database を v12 にアップグレードした後、TLS ハンドシェイク エラーが発生するのはなぜですか?

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

2024 年 12 月 21 日に公開
ブラウズ:206

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

Solution

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

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

更新された接続文字列

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

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 を接続文字列に追加すると、問題が解決されるはずです。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3