Я пытаюсь создать небольшой центр сертификации, используя bouncycastle.
Сертификат создается с помощью BouncyCastle и сохраняется в хранилище сертификатов текущего пользователя вместе с закрытым ключом.
Однако по соображениям безопасности ключ помечен как неэкспортируемый. Я знаю, что это легко обойти, но это должно стать дополнительным препятствием.
Теперь, если нужно подписать новый сертификат, мне нужно получить доступ к закрытому ключу сертификата. Я пробовал использовать этот код:
X509Certificate2 caCert = GetRootKey(); // Fetches the certificate from the store
AsymmetricCipherKeyPair caPrivKey = DotNetUtilities.GetKeyPair(caCert.PrivateKey);
К сожалению, я получаю CryptographicException - потому что закрытый ключ помечен как не экспортируемый, и это то, что я намеревался ;-)
У меня вопрос: как я могу использовать закрытый ключ сертификата без доступа к нему? Я почти уверен, что упускаю какой-то важный момент, так как было бы бессмысленно хранить закрытый ключ без какого-либо доступа к нему ...
Я ищу это часами, но ничего не нахожу в stackoverflow или Google.
Может кто подскажет пожалуйста, что я делаю в корне не так? Есть ли другой способ что-то подписать ?!
Заранее спасибо!
Крис