Сохранить window.crypto сгенерированный закрытый ключ в хранилище ключей браузера?
Мы пытаемся реализовать следующий рабочий процесс:
- сгенерировать закрытый ключ в браузере, используя window.crypto
- создайте запрос подписи сертификата PKCS10 в браузере
- отправить PKCS10 на сервер
- сервер подписывает запрос и возвращает сертификат x509 в формате PEM
- браузер хранит сертификат для себя
То же самое уже работает, используя тег keygen в браузере и используя SPKAC вместо pkcs10. Теперь, однако, браузер не сохраняет возвращенный сертификат, просто хочет сохранить их. Когда мы пытаемся импортировать сертификат в браузер вручную, мы получаем "закрытый ключ для сертификата отсутствует или недействителен". Мы подозреваем, что закрытый ключ, сгенерированный window.crypto.generateKey(), не сохраняется в хранилище ключей браузера. Как получить закрытый ключ, хранящийся в хранилище ключей?
Реализация первых двух шагов основана на http://blog.engelke.com/2014/08/23/public-key-cryptography-in-the-browser/
Обновление: поскольку некоторые браузеры используют хранилище ключей ОС, я также изучаю возможность сохранения ключа в хранилище ключей ОС другим способом. Что я понял до сих пор:
Java нельзя использовать в соответствии с этим вопросом: Скажите Java использовать хранилище ключей Windows
В Windows можно использовать элементы управления ActiveX.
Описание: Не найдено ни одного стандартного кросс-браузерного и кросс-операционного способа создания и осмысленного использования сертификатов X509. Существуют комбинации (новые версии Chrome (исключение поддержки keygen) в ОС, отличных от Windows), где нет способа сделать это.