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可以像您期望的那樣添加。

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 刪除密鑰容器。
- 2 回答
- 0 關(guān)注
- 354 瀏覽
添加回答
舉報(bào)