第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

從證書(shū)存儲(chǔ)導(dǎo)入的 X509 證書(shū)沒(méi)有私鑰

從證書(shū)存儲(chǔ)導(dǎo)入的 X509 證書(shū)沒(méi)有私鑰

C#
繁星點(diǎn)點(diǎn)滴滴 2023-07-22 18:29:23
有一些簡(jiǎn)單的代碼可以使用以下命令將帶有私鑰的證書(shū)導(dǎo)入到 Windows 證書(shū)存儲(chǔ)中.net core 2.2:  using (var store = new X509Store(StoreName.Root,StoreLocation.CurrentUser))  {      store.Open(OpenFlags.ReadWrite);      store.Add(cert);      store.Close();  }還有一些同樣簡(jiǎn)單的代碼可以再次將其讀出來(lái): using (var store = new X509Store(StoreName.Root,StoreLocation.CurrentUser)) {    store.Open(OpenFlags.ReadOnly);    var certCollection = store.Certificates.Find(X509FindType.FindBySubjectName, commonName, validOnly);    store.Close();    return certCollection; }然而,盡管證書(shū)已成功檢索到 certCollection 中,但它的私鑰為 null 并且 hasPrivateKey 為 false,即使它們?cè)谥暗恼{(diào)用中不為 null 且為 true Add。為什么是這樣?更新:using (RSA rsa = RSA.Create(keySize)) {         CertificateRequest certRequest = new CertificateRequest(         subjectName,         rsa,         HashAlgorithmName.SHA512,         RSASignaturePadding.Pkcs1);     certRequest.CertificateExtensions         .Add(newX509SubjectKeyIdentifierExtension(certRequest.PublicKey, false));       return certRequest;}
查看完整描述

2 回答

?
皈依舞

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊

您的密鑰被創(chuàng)建為臨時(shí)密鑰,因此當(dāng)將其添加到持久存儲(chǔ)時(shí),該密鑰將被丟棄。


如果要將密鑰持久保存到商店證書(shū)中,您需要直接將其創(chuàng)建為持久密鑰,或者導(dǎo)出到 PFX 然后重新導(dǎo)入(這是最簡(jiǎn)單的形式):


// If you're planning on saving to a LocalMachine store you should also | in the

// X509KeyStorageFlags.MachineKeySet bit.

X509KeyStorageFlags storageFlags = X509KeyStorageFlags.PersistKeySet;


X509Certificate2 certWithPersistedKey =

    new X509Certificate2(

        certWithEphemeralKey.Export(X509ContentType.Pkcs12, ""),

        "",

        storageFlags);

現(xiàn)在certWithPersistedKey可以像您期望的那樣添加。


查看完整回答
反對(duì) 回復(fù) 2023-07-22
?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊

X509Certificate2 cert = new X509Certificate2("a.pfx", "password", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet);

X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);

store.Open(OpenFlags.ReadWrite);

store.Add(xCertificate);

原因 當(dāng)使用 X509Certificate 或 X509Certificate2 類(lèi)安裝證書(shū)時(shí),X509Certificate 或 X509Certificate2 默認(rèn)情況下會(huì)創(chuàng)建一個(gè)臨時(shí)容器來(lái)導(dǎo)入私鑰。當(dāng)不再引用私鑰時(shí),私鑰將被刪除。


解決方法 要為私鑰創(chuàng)建永久密鑰容器,必須使用 X509KeyStorageFlags.PersistKeySet 標(biāo)志來(lái)防止 .NET 刪除密鑰容器。

查看完整回答
反對(duì) 回復(fù) 2023-07-22
  • 2 回答
  • 0 關(guān)注
  • 354 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)