Uzak web sunucusuna HTTPS isteği yaparken, uzak web sunucusuyla güvenli bağlantı kuran WebRequest'i kullanıyorum. Geliştirme sırasında, sunucuda kendinden imzalı sertifika kullanıyorum ve WebRequest güvenli bir bağlantı kuramıyor çünkü sertifika geçerli olmadığından, beklenen davranış.HTTPS isteği sırasında uzak SSL sertifikasını doğrulayın
Aşağıdaki kodda SetCertificatePolicy()
yöntemini çağırarak etkinleştirilen "remotes" onay kutusunu bu kodu buldum. Ben uzak web sunucusu geçerli bir SSL sertifikası kullandığını doğrulamak ve sadece herhangi böylece uzaktan SSL sertifikası özel kontroller yapmak mümkün olup olmadığını merak ediyorum
public static void SetCertificatePolicy()
{
ServicePointManager.ServerCertificateValidationCallback
+= RemoteCertificateValidate;
}
/// <summary>
/// Remotes the certificate validate.
/// </summary>
private static bool RemoteCertificateValidate(
object sender, X509Certificate cert,
X509Chain chain, SslPolicyErrors error)
{
// trust any certificate!!!
System.Console.WriteLine("Warning, trust any certificate");
return true;
}
, (örneğin, kod üzerinde kullanarak) geçerli bir sertifika, ama tam olarak istediğim? Örneğin, www.someplace.com web sitesi, ACME Inc'e verilen belgenin parmak izi ile konuştuğumdan emin olmak istiyorum 00:11:22: .....
"En iyi uygulama nedir?" "Bu senaryo için yaklaşım?
Teşekkürler!
Teşekkürler, aradığım şey buydu. Sadece hızlı bir Q, ilk ipucu (cert verisini byte [] ile karşılaştırarak) - bilinen geçerli cert bayt dizisini doğruladığımla karşılaştırmalı mıyım? –
Bayt dizisinin DER kodlamasında sertifika olacağını düşünüyorum, bu nedenle muhtemelen DER biçimindeki referans sertifikanızı karşılaştırmalısınız (Windows sertifika aracı dahil birçok araç bu formata dışa aktarılabilir). Bunu doğrudan sertifika deposundan yükleyebilirsiniz (nasıl yapıldığından emin değil). – Bruno