Создайте пару ключей RSA или на эллиптических кривых через Web Crypto API и экспортируйте оба ключа в PEM. Генерация локальна — приватный ключ не покидает браузер.
Да — generateKey работает в браузере через Web Crypto, ничего не передаётся.
EC-ключи меньше и быстрее при схожей стойкости; RSA более совместим. P-256 или RSA-2048 — разумные значения по умолчанию.
Публичный ключ как SPKI (BEGIN PUBLIC KEY), приватный как PKCS#8 (BEGIN PRIVATE KEY).