![](/img/trans.png)
[英]X509/SSL Certificate : The request was aborted: Could not create SSL/TLS secure channel
[英]Adding TLS certificate to the API request with exception: The request was aborted: Could not create SSL/TLS secure channel
為了能夠使用某些API,我必須使用TLS證書(1.1版)。
我的代碼如下:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://someapi/request/");
request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = Encoding.UTF8.GetByteCount(postData);
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version11;
ServicePointManager.Expect100Continue = false;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
X509Certificate2 certificate = new X509Certificate2(@"d:\TLScertificate.p12", "password");
X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
try
{
store.Open(OpenFlags.ReadWrite);
if (!store.Certificates.Contains(certificate))
{
store.Add(certificate);
}
int indexOfCertificate = store.Certificates.IndexOf(certificate);
certificate = store.Certificates[indexOfCertificate];
}
finally
{
store.Close();
}
request.ClientCertificates.Add(certificate);
request.PreAuthenticate = true;
using (StreamWriter writer = new StreamWriter(request.GetRequestStream())) // Exception
{
}
在request.GetResponse()
期間,我總是會遇到異常:請求被中止:無法創建SSL / TLS安全通道。
提供者回答我:
需要
信任庫中的Root Ca v1 test.pem和密鑰庫中的TLSCertificate
請告訴我如何處理.pem文件? 應該將其添加到請求中,與TLScertificate.p12文件相同嗎? 當我在請求中添加第二個X509Certificate2(沒有任何密碼)時,仍然出現相同的錯誤。
首先,您可以立即使用已加載的證書
X509Certificate2 certificate = new X509Certificate2(@"d:\TLScertificate.p12", "password");
request.ClientCertificates.Add(certificate);
必須將pem文件導入計算機KeyStore mmc->文件->添加/刪除管理單元->證書
這可以幫助將pem轉換為crt 將.pem轉換為.crt和.key
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.