Можно ли запросить создание клиентской ключевой пары в браузере и отправить открытый ключ на сервер CA, который будет подписан прозрачно? Затем установите подписанный сертификат в браузере пользователя?
Сценарий:
- Пользователь открывает веб-страницу https://examle.com/, удостоверяется личность сервера
- Пользователь запрашивает создание учетной записи.
- Keypair создается в браузере пользователя и не отображается на сервере /CA
- Pubkey отправляется на сервер для подписания
- Сервер подписывает ключ и генерирует сертификат
- Сертификат отправляется клиенту и устанавливается в браузере вместе с закрытым ключом
В следующий раз клиент подключается к серверу, его идентификация проверяется на основе сертификата клиента.
Было бы неплохо, если бы сервер мог заставить/намекнуть клиенту защитить свой закрытый ключ, используя шифрование паролей.
Я видел онлайн-банкинг с помощью java-апплета для этой задачи. Можно ли это сделать, используя собственные возможности браузера? Решение Apache/PHP или Node.js будет приветствоваться.