【发布时间】:2020-04-23 10:38:10
【问题描述】:
我在放置此代码的 C# .Net Core 3.1 和 .Net Standard 库中进行编程。
我没有使用未安装在服务器/计算机上的客户端证书通过 RestSharp 获取我的 http 请求,我将无法访问稍后将要运行的服务器/计算机..
我的代码:
// Create a RestSharp RestClient objhect with the base URL
var client = new RestClient(_baseAPIUrl);
// Create a request object with the path to the payment requests
var request = new RestRequest("swish-cpcapi/api/v1/paymentrequests");
// Create up a client certificate collection and import the certificate to it
X509Certificate2Collection clientCertificates = new X509Certificate2Collection();
clientCertificates.Import(_certDataBytes, _certificatePassword, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet);
// Add client certificate collection to the RestClient
client.ClientCertificates = clientCertificates;
//X509Certificate2 certificates = new X509Certificate2(_certDataBytes, _certificatePassword);
//client.ClientCertificates = new X509CertificateCollection() { certificates };
// Add payment request data
request.AddJsonBody(requestData);
var response = client.Post(request);
var content = response.Content;
我已经完成了我在互联网上可以找到的所有内容,并且我使用了带有自己生成证书的服务测试环境,并在生产环境中生成了我自己的证书,结果相同..
我已经测试了设置 TLS 1.1 或 TLS 1.2 进行测试,他们在自己的 curl 示例中指定了 TLS 1.1。
有人知道吗?
更新 2020-01-08 - 我从服务技术支持人员那里得到信息,他们只看到我发送了一个证书,但是当我尝试调试和检查 X509Certificate2Collection 时,我发现了 3 个证书。但他们说他们只看到一个?
【问题讨论】:
-
他们指定他们使用 1.1 并测试两者
-
FWIW 2.2 不再受支持,您想退回到 2.1 或升级到 3.1。
-
bartonjs:你能解释一下你对 FWIW 2.2 不再支持的意思吗?
标签: c# .net .net-core restsharp client-certificates