SSL公钥的不同值

时间:2018-11-06 07:15:55

标签: c# ssl xamarin public-key-pinning

我想在我的应用程序中检查ssl证书的公钥。

要做到这一点,我在使用此代码的地方处理ServicePointManager.ServerCertificateValidationCallback

private static bool ValidateServerCertficate(object sender, X509Certificate certificate,
        X509Chain chain,
        SslPolicyErrors sslPolicyErrors) 
{
    var myKey = System.Convert.ToBase64String(HexStringToHex(certificate?.GetPublicKeyString()));
    return supportedPublicKey == myKey; 
}

其中supportedPublicKey是一个字符串,是我从控制台命令获得的

  

openssl s_client -connect gibdd-pay.ru:443 | openssl x509 -pubkey -noout

问题是这两个值是不同的。好像控制台向我返回带有某种前缀的PublicKeyString。键入控制台的样子

  

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A + PublicKeyString

为什么会这样?如何从我的应用程序中获取此前缀?

0 个答案:

没有答案