TLS güvenli kanal -- SABUN SSL/için güven ilişkisi kurulamadı
Basit bir web servis çağrısı, bir tarafından oluşturulan var .(C# NET 2.0 windows uygulaması, web hizmeti, web hizmeti proxy Visual Studio tarafından oluşturulan), aynı zamanda C yazılı# (2.0). Bu birkaç yıl boyunca çalıştı, ve burada çalışan çok düzine kadar yerlerde yapmaya devam ediyor.
Yeni bir sitede yeni bir yükleme bir sorun haline çalışıyor. Web hizmetini çağırmak için çalışırken, mesaj başarısız, "SSL için güven ilişkisi kurulamadı/TLS güvenli kanal". Web hizmet URL -- SSL (https://) kullanır ama bu uzun zaman (ve bunu yapmak için devam eder) pek çok başka yerlerden çalışmaktadır.
Nereye bakacağım? Bu Pencereler arasında ve .güvenlik sorunu olabilir Bu yüklemek için benzersiz olduğunu NET? Eğer öyleyse, nerede güven ilişkileri kurma. Kayboldum!
CEVAP
Aşağıdaki parçacıkları bir şey aradığınız server üzerinde SSL sertifikası ile yanlış olduğu davayı çözecektir. Örneğin, kendini imzalamış olabilir veya makine ismi ile sertifika ve sunucu arasında aynı olmayabilir.
Butehlikelieğer doğrudan kontrolünüz dışındaki bir sunucu arıyorsanız, artık sunucu konuşuyorsun bu kadar emin olabiliyorsun beri bağlı olduğunu sanıyorsun. Eğer iç sunucuları ve bir "" sertifika değil, pratik, aşağıdaki web hizmet belgesi sorunları ve cesurca asker görmezden söylemek için kullanın. doğru alma ile ilgili olmadığını, ancak,
İlk iki kullanım lambda ifadeleri, üçüncü normal kod kullanır. İlk herhangi bir sertifika kabul eder. Ana belgesinde adı olmadığını kontrol edin en azından son iki beklediğiniz.
... umarım faydalı bulursunuz
//Trust all certificates
System.Net.ServicePointManager.ServerCertificateValidationCallback =
((sender, certificate, chain, sslPolicyErrors) => true);
// trust sender
System.Net.ServicePointManager.ServerCertificateValidationCallback
= ((sender, cert, chain, errors) => cert.Subject.Contains("YourServerName"));
// validate cert by calling a function
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateRemoteCertificate);
// callback used to validate the certificate in an SSL conversation
private static bool ValidateRemoteCertificate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors policyErrors)
{
bool result = false;
if (cert.Subject.ToUpper().Contains("YourServerName"))
{
result = true;
}
return result;
}
Nasıl çözmek "/TLS yetkisi " ile ...
Güvenli karma ve PHP şifreler için tuz...
Git bir şube birleştirmek için en iyi ...
Ayrıca güvenli bir web hizmetine erişi...
Ne tür-güvenli numaralama çeşitleri mo...