![](/img/trans.png)
[英]How to use windows store certificate (X509Certificate2) in GRPC server using .Net framework 4.7?
[英]X509Certificate2 in .NET Core 3.1 vs .Net Framework 4.7
我正在將代碼從 .NET Framework 4.7.2 項目移植到一個新項目 .Net Core 3.1 中。 代碼需要使用 X509Certificate 從 https 端點提取數據:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "GET";
var cert = new X509Certificate2( X509Certificate.CreateFromCertFile("myCert.cer"));
req.ClientCertificates.Add(cert);
req.Timeout = timeoutMs;
WebResponse response = req.GetResponse();
Stream responseStream = response.GetResponseStream();
這在 .Net Framework 項目中運行良好,但復制到 .Net Core 3.1 項目中的相同代碼返回 403。兩者都是簡單的控制台應用程序。 我正在使用 .cer 文件的完整路徑,並且我已確認它已成功加載證書數據。
.Net Core 3.1 中的 X509Certificate 是否存在任何已知問題? 或者必須以不同方式做的事情? web 上的大部分信息都使用了一個證書文件和一個密鑰文件,但我只有一個.cer 文件。 這是一個問題嗎(顯然我對證書不是很熟悉)?
該行:
var cert = new X509Certificate2( X509Certificate.CreateFromCertFile("myCert.cer"));
假設您只附加公共證書,沒有關聯的私鑰。 這不足以進行客戶端證書身份驗證。 證書必須具有X509Certificate2.HasPrivateKey
屬性才能返回true
(例如從 PFX 導入或個人證書存儲)。 這不適用於任何 .NET 版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.