我正在尝试与服务器进行通信。该服务器向我发送了一个证书和私钥,以便成功执行我的请求。
为了测试服务器,我使用Postman。所以我在Postman中填写证书设置,然后我的请求运行良好。
现在我想在C#中做同样的事情。
为此,我使用RestSharp创建请求。
这是我的代码:
var client = new RestClient(url);
byte[] certBuffer = UtilsService.GetBytesFromPEM(myCertificate, Models.Enum.PemStringType.Certificate);
byte[] keyBuffer = UtilsService.GetBytesFromPEM(encryptedPrivateKey, Models.Enum.PemStringType.RsaPrivateKey);
X509Certificate2 certificate = new X509Certificate2(certBuffer, secret);
client.ClientCertificates = new X509CertificateCollection() { certificate };
var request = new RestRequest(Method.POST);
request.AddHeader("Cache-Control", "no-cache");
request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("myStuff", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
请求无法正常工作。我认为问题源于我在RestSharp中加载证书的方式。
我正在寻找如何在RestSharp中正确设置证书的信息。
我正在使用RestSharp,但也可以使用其他适用于C#的工具。