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
Lepaskan: 2025-01-21 08:27:09
asal
972 orang telah melayarinya

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:
System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);
Salin selepas log masuk

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:
System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, cert, chain, errors) => cert.Subject.Contains("YourServerName"));
Salin selepas log masuk

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

  • Pengesahan sijil tersuai:
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;
}
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan