带证书文件和证书密钥访问RPC接口

curl --insecure --cert ~/.chia/mainnet/config/ssl/full_node/private_full_node.crt \ --key ~/.chia/mainnet/config/ssl/full_node/private_full_node.key \ -d '{}' -H "Content-Type: application/json" -X POST https://localhost:8555/get_blockchain_state | python -m json.tool Chia节点的接口需要携带证书,和证书密钥,我调用接口的时候要怎么在在吗中指定这两个文件呢,我请求接口的时候总是提示证书验证不通过 使用的开发语言是 .Net Core 我尝试过HttpWebRequest和HttpClient,可以通过X509Certificate2指定证书文件,但是没有找到指定证书密钥的方法

请看此文对你是否有所帮助:c# - Add client certificate to .net core Httpclient - Stack Overflow

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

/// <summary>
        /// 指定Post地址使用Get 方式获取全部字符串
        /// </summary>
        /// <param name="url">请求后台地址</param>
        /// <param name="content">Post提交数据内容(utf-8编码的)</param>
        /// <returns></returns>
        public static string PostSsl3(string url, string content)
        {
            string path = @"D:\Site\QL.Back.API\wwwroot\file\cert\apiclient_cert.p12";
            string password = "xxxx";

            //HttpClient请求,在handler里添加X509Certificate2 证书,数据data是byte[] 类型,所以需要使用ByteArrayContent传入
            var handler = new HttpClientHandler();
            handler.ClientCertificateOptions = ClientCertificateOption.Manual;
            handler.SslProtocols = SslProtocols.Tls12;
            //获取证书路径
            //商户私钥证书,用于对请求报文进行签名
            handler.ClientCertificates.Add(new X509Certificate2(path, password, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet));
            handler.SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls;
            handler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true;
            //post请求
            var client = new HttpClient(handler);
            using (MemoryStream ms = new MemoryStream())
            {
                byte[] bytes = Encoding.UTF8.GetBytes(content);
                ms.Write(bytes, 0, bytes.Length);
                ms.Seek(0, SeekOrigin.Begin);//设置指针读取位置,否则发送无效
                HttpContent hc = new StreamContent(ms);
                var response = client.PostAsync(url, hc).Result;
                return response.Content.ReadAsStringAsync().Result;
            }
        }