Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Membetulkan Ralat 'Tidak Dapat Mewujudkan Perhubungan Amanah untuk Saluran Selamat SSL/TLS' dalam Perkhidmatan Web SOAP?

Bagaimana untuk Membetulkan Ralat 'Tidak Dapat Mewujudkan Perhubungan Amanah untuk Saluran Selamat SSL/TLS' dalam Perkhidmatan Web SOAP?

Patricia Arquette
Patricia Arquetteasal
2025-01-21 08:27:09964semak imbas

How to Fix

Menyelesaikan ralat "Tidak dapat mewujudkan hubungan kepercayaan untuk saluran selamat SSL/TLS" dalam komunikasi perkhidmatan web SOAP

Jika panggilan perkhidmatan web .NET telah berfungsi dengan baik pada masa lalu, tetapi kini anda mendapat ralat "Tidak dapat mewujudkan kepercayaan untuk saluran selamat SSL/TLS", anda mesti menyiasat isu asas.

Sebab:

Ralat ini biasanya berlaku apabila terdapat percanggahan antara sijil SSL yang disediakan oleh perkhidmatan web dan tetapan amanah yang dikonfigurasikan pada komputer klien.

Penyelesaian:

Untuk menyelesaikan isu ini, anda perlu menyemak sijil SSL perkhidmatan web dan melaraskan tetapan perhubungan kepercayaan pada komputer klien. Tiga kaedah disenaraikan di bawah:

  • Abaikan amaran sijil:
<code class="language-csharp">System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);</code>

Coretan kod ini melumpuhkan pengesahan sijil dan mengarahkan perkhidmatan web untuk mengabaikan isu sijil, membolehkan komunikasi diteruskan. Walau bagaimanapun, kaedah ini hanya boleh digunakan untuk pelayan dalaman yang tidak boleh mendapatkan sijil.

  • Pastikan nama hos sepadan:
<code class="language-csharp">System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, cert, chain, errors) => cert.Subject.Contains("YourServerName"));</code>

Coretan kod ini mengesahkan sijil dengan membandingkan nama hos dalam sijil dengan nama hos yang dijangkakan. Jika ada perlawanan, komunikasi dibenarkan.

  • Pengesahan sijil tersuai:
<code class="language-csharp">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>

Kaedah ini melibatkan penentuan fungsi panggil balik tersuai untuk mengesahkan sijil berdasarkan syarat tertentu. Dalam kes ini, kod menyemak sama ada nama hos dalam sijil sepadan dengan nilai tertentu.

Sila gantikan "YourServerName" dengan nama pelayan sebenar anda. Kaedah yang anda pilih bergantung pada situasi khusus anda dan keperluan keselamatan. Adalah sangat disyorkan untuk mengutamakan padanan nama hos atau pengesahan sijil tersuai, dan tidak disyorkan untuk mengabaikan amaran sijil melainkan anda memahami sepenuhnya risiko keselamatan.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Tidak Dapat Mewujudkan Perhubungan Amanah untuk Saluran Selamat SSL/TLS' dalam Perkhidmatan Web SOAP?. 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