[英]How to get the base 64 encoded value of a certificate with private key?
按照上一個問題 ,我有一些代碼需要獲得帶有私鑰的X509證書。 如答案中所述,在生產中,這將使用X509Store發生。
單元測試的最佳方法是什么? 我想使用不同於生產的證書來開發和測試,因此我可以創建一個CertificateRepository接口來提供不同的實現。
對於測試/開發實現,最好只使用證書的base64編碼字符串,並使用虛擬密碼和專用測試/開發證書創建一個證書實例。 但到目前為止,我一直無法弄清楚如何使用私鑰作為base64字符串對證書進行編碼。 每次我嘗試從MMC導出證書作為base-64時,它只對公鑰進行編碼。
我無法弄明白如何用mmc做到這一點。 但是我確實弄清楚如何在代碼中執行此操作:
var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
var certificate = store.Certificates.Find(X509FindType.FindByThumbprint,
"BLABLABLA", false)[0]; // doesn't matter how you get the cert
var exported = certificate.Export(X509ContentType.Pfx, "the password");
var base64 = Convert.ToBase64String(exported);
store.Close();
只要您從x 509商店獲得的證書具有私鑰,它將最終出現在導出的字節arrray中,然后您可以將其轉換為base64字符串。
將證書添加到商店時,請確保將私鑰標記為可導出。
如果使用makecert創建證書,請添加-pe選項以使私鑰可導出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.