Menyelesaikan ralat saluran selamat SSL/TLS "Tidak dapat mewujudkan hubungan kepercayaan"
Ia boleh mengelirukan apabila menghadapi ralat "Tidak dapat mewujudkan hubungan kepercayaan untuk saluran selamat SSL/TLS" semasa membuat panggilan perkhidmatan web menggunakan URL selamat SSL. Mari kita terokai punca dan penyelesaian yang berpotensi.
Mesej ralat ini biasanya menunjukkan masalah dengan sijil SSL pada pelayan. Ia mungkin ditandatangani sendiri atau nama hos tidak sepadan dengan pelayan. Untuk menyelesaikan masalah ini:
Jika anda mempercayai pelayan dan tidak mahu mengesahkan sijilnya (tidak disyorkan):
<code>// 信任所有证书 System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);</code>
Jika anda mempercayai pelayan tetapi ingin mengesahkan nama hosnya:
<code>// 信任发送者 System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, cert, chain, errors) => cert.Subject.Contains("YourServerName"));</code>
Jika anda lebih suka menggunakan fungsi panggil balik tersuai untuk mengesahkan sijil:
<code>ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate); private static bool ValidateRemoteCertificate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors policyErrors) { bool result = cert.Subject.Contains("YourServerName"); return result; }</code>
Penyelesaian ini melumpuhkan proses pengesahan sijil lalai. Seperti pelayan luaran, gunakannya dengan berhati-hati kerana anda mungkin menyambung ke sumber yang tidak dipercayai. Walau bagaimanapun, jika pelayan adalah dalaman dan mendapatkan sijil yang sah adalah tidak praktikal, penyelesaian ini boleh memudahkan komunikasi.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Masalah 'Tidak Dapat Mewujudkan Perhubungan Amanah' Ralat SSL/TLS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!