HTTPS で WebRequest を使用する: SSL 暗号化の課題を克服する
URL を操作する場合、HTTP プロトコルと HTTPS プロトコルの両方が発生するのが一般的です。 SSL 暗号化を利用した HTTPS は、通信にさらなるセキュリティ層を追加します。ただし、WebRequest を使用するときに問題が発生する可能性があります。
問題:
ユーザーが次のコードを使用して HTTPS URL にアクセスするときに問題が発生しました:
Uri uri = new Uri(url); WebRequest webRequest = WebRequest.Create(uri); WebResponse webResponse = webRequest.GetResponse(); ReadFrom(webResponse.GetResponseStream());
分析:
確かにURL が無効な SSL 証明書を持つサイトを指している場合、このコードは失敗する可能性があります。
解決策:
問題を解決して SSL 暗号化されたサイトへのアクセスを許可するには
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications); public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { return true; }
これらの 2 行は SSL 証明書の問題を無視し、証明書に関係なくターゲット サイトへのアクセスを効果的に許可します。 validity.
このソリューションを実装した後、提供されたコードは HTTP と HTTPS URL の両方からコンテンツを正常に読み取ることができるようになります。
以上がSSL 証明書の問題があるにもかかわらず、WebRequest を使用して HTTPS URL にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。