WebRequest を使用して、HTTPS で SSL 暗号化されたサイトにアクセスするにはどうすればよいですか? 質問する

WebRequest を使用して、HTTPS で SSL 暗号化されたサイトにアクセスするにはどうすればよいですか? 質問する

ユーザーが指定した URL からコンテンツを読み取るプログラムを書いています。問題は次のようなコードにあります。

Uri uri = new Uri(url);
WebRequest webRequest = WebRequest.Create(uri);
WebResponse webResponse = webRequest.GetResponse();
ReadFrom(webResponse.GetResponseStream());

そして、これは提供されたURLは URLですhttps://。SSL で暗号化されたコンテンツで動作するようにこのコードを変更する方法を誰か教えてください。よろしくお願いします。

ベストアンサー1

正しい方法で実行していますが、無効な SSL 証明書がインストールされているサイトの URL をユーザーが提供している可能性があります。実際の Web リクエストを行う前に次の行を挿入すると、これらの証明書の問題を無視できます。

ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);

ここで、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;
}

おすすめ記事