Моя конкретная ситуация относится к Windows, но я приветствую знать, чем это будет отличаться от других практических приложений. Подмножества содержат информацию, на которой я основываю свою логику. Пожалуйста, исправьте их, если я ошибаюсь.
Вот что я делаю:
На первом этапе: где в настоящее время находится закрытый ключ?
На третьем этапе: закрытый ключ по-прежнему находится в том же месте, что и в (1), или теперь он присутствует только в сертификате?
Как вы можете объединить этот закрытый ключ с сертификатом, кроме как импортировать его в магазин?
По большей части ключ + сертификаты хранятся в реестре. это статья Microsoft охватывает многие пути, и вот блог о расположение сертификатов.
В файловой системе сохраняется несколько пар ключ + сертификаты для каждого пользователя. Видеть
Documents and Settings\< username >\ApplicationData\Microsoft\SystemCertificates\My\Certificates
Users\< username >\ApplicationData\Microsoft\SystemCertificates\My\Certificates
Если вы не хотите использовать оболочку управления Exchange, существует множество инструментов для управления сертификатами. В связанной статье упоминается Certutil, вы можете открыть Диспетчер сертификатов приставка.
Я не знаю всех подробностей о том, как именно Windows физически хранит ключи и сертификаты, но вы, безусловно, можете создать закрытый ключ с помощью такого инструмента, как OpenSSL, создать запрос на подпись и отправить его в ЦС. После того, как вы получите сертификат от центра сертификации, вы можете импортировать закрытый ключ и сертификат в Windows. Обычно это делается путем преобразования ключа и сертификата в pkcs12 файл и импортируя это.
Файл pkcs12 и некоторые другие, ключ и сертификат могут храниться в одном и том же большом двоичном объекте реестра или в одном файле, но они всегда будут отдельными объектами, и с помощью правильных инструментов вы сможете извлечь их и разделить.