微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 .p12

如何解决使用 .p12

我有一个需要点击和验证的端点。

我有一个生成的 .p12 文件一个可用于验证的证书链(根证书和中间证书)。

这是我目前使用的代码,它给了我这个错误

System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.

var handler = new httpclienthandler();

var p12 = new X509Certificate2(
  Path.Combine(Environment.CurrentDirectory,"Assets/Certs/p12filename.p12"),"TheRealPassword");
            
handler.ClientCertificateOptions = ClientCertificateOption.Manual;
handler.ClientCertificates.Add(p12);
handler.ServerCertificateCustomValidationCallback = (httpRequestMessage,cert,chain,sslPolicyErrors) =>
{
    var root = new X509Certificate2(
        Path.Combine(Environment.CurrentDirectory,"Assets/Certs/Root.cer"));
                
    X509Chain CertificateChain = chain;
    CertificateChain.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck;
                
    return CertificateChain.Build( root ); 
};

var client = new HttpClient(handler);

var url = "https://urlHere"
            
var request = new HttpRequestMessage()
  {
    RequestUri = new Uri(url),Method = HttpMethod.Get,};
            
var response = await client.SendAsync(request);

我不太精通使用证书,所以它可能是非常基本的东西。请注意,如果在 ServerCertificateCustomValidationCallback 中我返回 true 我没有问题。

更新: 澄清一下,我如何使用我的 .p12 和相应的根证书和中间证书来验证我遇到的终点。我的假设基于在回调中返回 true 给我我想要的东西是我需要在这里做这些检查。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。