何らかの理由でサーバ証明書が信頼できないサイト(自己いわゆるオレオレ証明書)にSSLでアクセスして、データを取得したいということがあります。そんなときはまず、
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(OnRemoteCertificateValidationCallback);
という感じで、System.Net.ServicePointManager クラスの ServerCertificateValidationCallback というプロパティにサーバ証明書検証コールバックを登録します。で、コールバックの中身は以下のようにします。
private bool OnRemoteCertificateValidationCallback (
Object sender,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
// 信用したことにする
return true;
}
このコールバックで返す Boolean 値が続行するかどうかになるので、大丈夫ということで true を返します。ユーザがアドレスを指定できるような場合にはちょっとチェックなどを加えたほうがいいかもですけど。