วิธีสั่งให้ HttpClient ยิงหา API Https ที่ Cert เป็นสีแดง (Ignore Certificate Validation)


เวลาที่เราเรียกใช้ class HttpClient เพื่อยิง Request ไปหา API ที่เป็น HTTPS

แต่ตัว API ของเรา มี Cert เป็นสีแดง หรือเป็น self-cert ซึงตัวโค้ตตรวจสอบความน่าเชื่อถือไม่ได้

ก็มีวิธีนี้ในการที่จะ Ignore Cert 
หรือ ง่ายๆคือ ไม่ไม่สนใจว่า Cert ของ API จะเป็นเขียว หรือจะเป็นแดง 


// โค้ตก็ตามตัวอย่างข้างล่างเลยครับ

บรรทัด ที่บอกว่า  ServicePointManager.ServerCertificateValidationCallback  
เราก็ Overide ด้วย delegate function ให้ Return true เสมอ

เพียงเท่านี้ทุกครั้งที่มีการเรียก API Https ที่ Cert เป็นสีแดง ก็จะผ่านเสมอครับ







ตัวอย่างโค้ต
         ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;


 ซึ่งวิธีนี้ก็ถ้าไม่จำเป็นก็ไม่แนะนำนะ ควรจะขอ Cert API มาแอดเข้าไปไว้ในโปรเจคดีกว่า

Ref : https://stackoverflow.com/questions/703272/could-not-establish-trust-relationship-for-ssl-tls-secure-channel-soap

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

SetUp Theme Monokai On Visual Studio

"zsh: command not found: docker"

คู่มือ Install IIS On Windows Server 2016