Rumah >pembangunan bahagian belakang >Golang >Mengapakah saya mendapat ralat Jabat Tangan TLS selepas menaik taraf Pangkalan Data Azure SQL saya kepada v12?

Mengapakah saya mendapat ralat Jabat Tangan TLS selepas menaik taraf Pangkalan Data Azure SQL saya kepada v12?

Linda Hamilton
Linda Hamiltonasal
2024-10-27 07:29:03843semak imbas

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

Azure SQL Database TLS Handshake Ralat selepas v12 Naik Taraf

Anda mungkin menghadapi ralat TLS Handshake selepas contoh Azure SQL Database dinaik taraf kepada v12 . Ralat ini berlaku apabila sijil yang dibentangkan oleh pelayan tidak sepadan dengan nama hos yang dinyatakan dalam rentetan sambungan klien.

Butiran Ralat

Mesej ralat biasanya menunjukkan bahawa sijil adalah sah untuk nama hos selain daripada yang digunakan dalam sambungan klien. Contohnya:

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

Penyelesaian

Untuk menyelesaikan isu ini, kemas kini rentetan sambungan klien untuk memasukkan parameter berikut:

  • TrustServerCertificate=True: Parameter ini memberitahu pelanggan untuk mempercayai sijil pelayan, walaupun ia tidak sepadan dengan nama hos.
  • hostNameInCertificate=*.database.windows.net: Parameter ini menentukan nama hos yang perlu ada dalam sijil pelayan.

Rentetan Sambungan Dikemas Kini

Rentetan sambungan yang dikemas kini sepatutnya kelihatan seperti ini :

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;

Penjelasan

Dalam versi Pangkalan Data Azure SQL sebelumnya, sijil pelayan sentiasa sepadan dengan nama hos yang dinyatakan dalam rentetan sambungan klien. Walau bagaimanapun, dalam v12, ini tidak lagi dijamin. Dengan menetapkan TrustServerCertificate kepada True dan menyatakan nama hos yang betul dalam hostNameInCertificate, anda boleh mengarahkan pelanggan untuk menerima sijil dan mewujudkan sambungan dengan betul.

Nota:

Walaupun Portal Azure mencadangkan menetapkan TrustServerCertificate kepada False, ini mungkin membawa kepada ralat Jabat Tangan TLS dalam beberapa kes. Jika anda menghadapi ralat ini, menetapkan TrustServerCertificate kepada True dan menambahkan hostNameInCertificate pada rentetan sambungan harus menyelesaikan isu tersebut.

Atas ialah kandungan terperinci Mengapakah saya mendapat ralat Jabat Tangan TLS selepas menaik taraf Pangkalan Data Azure SQL saya kepada v12?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn