1

複数のサーバーと通信する必要があるアプリケーションがあるとします。一部のサーバーは開発モードで、自己署名証明書を使用しています。他のサーバーは本物の証明書を使用しています。

自己署名証明書の拇印を検証するこのような手法を通常の検証メカニズムと組み合わせることは可能ですか?

.NET の HttpWebRequest/Response で自己署名証明書を使用する

別の言い方をすれば、カスタム検証が失敗したときに、カスタム検証を通常の検証と連鎖させたいと考えています。次の変数が非 null で、カスタム バリデータが false を返す場合、デフォルトの実装が行われますか?

ServicePointManager.ServerCertificateValidationCallback

編集: 実際、検証コールバックの署名を見ると、通常の検証のにコールバックが発生しているように見えますか? 誰でもそれが事実であることを確認できますか?

 bool ValidateServerCertficate(
        object sender,
        X509Certificate cert,
        X509Chain chain,
        SslPolicyErrors sslPolicyErrors); // are errors from the regular validation?
4

1 に答える 1

1

デフォルトのバリデーターを呼び出すことはできないと思いますが、そうする必要はありません。カスタム コールバックを実装し、SslPolicyErrors列挙型を確認します。に等しい場合はSslPolicyErrors.None、いずれにせよ検証済みの優れた証明書です。それ以外の場合は、カスタム検証を行います。

internal static bool ValidateCerts(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
    if (sslPolicyErrors == SslPolicyErrors.None)
    {
        // Good certificate.
        return true;
    }
    //Do custom validation here
}
于 2012-12-14T17:35:47.380 に答える