【发布时间】:2019-07-08 10:01:28
【问题描述】:
我有一个可以使用 X509Certificate2 类读取的证书,如下所示:
X509Certificate2 证书 = 新 X509Certificate2(@"certificate.pem");
但我还有一个 EC 私钥。这是它的文件内容。
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIKpAuZ/Wwp7FTSCNJ56fFM4Y/rf8ltXp3xnrooPxNc1UoAoGCCqGSM49
AwEHoUQDQgAEqiRaEw3ItPsRAqdDjJCyqxhfm8y3tVrxLBAGhPM0pVhHuqmPoQFA
zR5FA3IJZaWcopieEX5uZ4KMtDhLFu/FHw==
-----END EC PRIVATE KEY-----
如何将此私钥“提供”给证书并最终提供给我的 HttpClient,以便它可以用作客户端证书?
这是我的其余代码:
X509Certificate2 certificate = new X509Certificate2(@"certificate.pem");
//certificate.PrivateKey = something;
httpClientHandler.ClientCertificates.Clear();
httpClientHandler.ClientCertificates.Add(certificate);
httpClientHandler.SslProtocols = SslProtocols.Tls12;
httpClientHandler.ClientCertificateOptions = ClientCertificateOption.Manual;
HttpClient httpClient = new HttpClient(httpClientHandler);
HttpResponseMessage result = httpClient.GetAsync("https://server.cryptomix.com/secure/").Result;
string str = result.Content.ReadAsStringAsync().Result;
【问题讨论】:
-
@canton 这有什么关系? OP 已经在使用证书。问题是关于不同的东西
-
@canton7 这个问题不不清楚。 EC 密钥存在。 Check this question for example。它们被某些支付服务使用。它们不是证书