Перейти к содержимому

Преобразователь JWK

Преобразуйте ключи между PEM и JSON Web Key. Вставьте закрытый ключ PEM в формате PKCS #8, PKCS #1 или SEC1, открытый ключ или сертификат, чтобы получить его JWK, либо вставьте JWK или JWKS, содержащий до 20 ключей, чтобы получить PEM в форматах PKCS #8 и SPKI. Поддерживаются ключи RSA, EC (P-256, P-384, P-521, secp256k1), Ed25519, Ed448, X25519 и X448; для каждого указываются его тип и отпечаток RFC 7638.

Сбросить

Часто задаваемые вопросы

Как преобразователь определяет направление преобразования?

Ввод, начинающийся с {, обрабатывается как JWK или JWKS и преобразуется в PEM. Ввод, содержащий строку -----BEGIN, обрабатывается как PEM и преобразуется в JWK. Любой другой формат отклоняется с подсказкой об ожидаемых форматах.

Какие входные данные PEM принимаются?

Незашифрованные закрытые ключи в форматах PKCS #8 (BEGIN PRIVATE KEY), PKCS #1 (BEGIN RSA PRIVATE KEY) и SEC1 (BEGIN EC PRIVATE KEY); открытые ключи в формате SPKI (BEGIN PUBLIC KEY) или PKCS #1 (BEGIN RSA PUBLIC KEY); а также сертификаты X.509, из которых преобразуется открытый ключ. Если вставлено несколько блоков PEM, выбирается первый закрытый ключ, а если его нет — первый открытый ключ или сертификат.

Что я получу для закрытого ключа?

Закрытый ключ PEM преобразуется в закрытый JWK со всеми его полями, например d, p, q, dp, dq и qi для RSA, а также в соответствующий открытый JWK. Передавайте только открытый JWK, поскольку закрытый содержит секретный материал ключа.

Можно ли преобразовать целый JWKS?

Да. Вставьте документ с массивом keys, содержащим до 20 ключей, например полученным от конечной точки jwks_uri, и каждый ключ будет преобразован в PEM с указанием его индекса и kid. Для закрытых JWK, распознаваемых по полю d, возвращаются и закрытый ключ PKCS #8, и открытый ключ SPKI.

Почему симметричный ключ нельзя преобразовать?

Ключи с kty oct — это обычные секретные байты для HMAC или AES, у которых нет представления PEM. Используйте их напрямую, например в генераторе JWT, который принимает JWK типа oct в качестве секрета HMAC.

Для чего нужен параметр kid?

Если он включен, отпечаток RFC 7638 ключа добавляется в сгенерированный JWK как поле kid. Так ключ получает постоянный идентификатор, который проверяющие могут сопоставить с заголовком kid в JWT.

Что такое отпечаток RFC 7638?

Это хеш SHA-256 в формате base64url, вычисленный по обязательным открытым полям ключа в фиксированном порядке: например, e, kty и n для RSA или crv, kty, x и y для EC. У одного и того же ключа всегда одинаковый отпечаток, независимо от того, хранится ли он в формате PEM или JWK.

Поддерживаются ли зашифрованные ключи или ключи OpenSSH?

Нет. Сначала нужно снять парольную фразу с зашифрованных ключей PEM, например командой openssl pkey -in encrypted.pem -out key.pem. Закрытые ключи OpenSSH нужно преобразовать в PEM с помощью ssh-keygen, прежде чем их можно будет прочитать здесь.

Какие типы ключей поддерживаются?

Поддерживаются RSA, EC на кривых P-256, P-384, P-521 и secp256k1, а также типы OKP Ed25519, Ed448, X25519 и X448. Ключи DSA и Diffie-Hellman не имеют представления JWK и отклоняются с пояснением.

Сохраняется ли мой закрытый ключ?

Нет. Ключ преобразуется в памяти для этого запроса и никогда не записывается в журнал или не сохраняется. Предпочтительнее преобразовывать онлайн открытые ключи, а закрытые ключи для производственных систем обрабатывать только на контролируемых вами системах.

О проекте OneClick Pro

OneClick Pro — это бесплатная коллекция из более чем 150 веб-инструментов для повседневных задач: преобразования изображений и единиц измерения, форматирования и проверки кода, проверки доменов и SEO, а также работы с текстом, датами и числами. Все инструменты доступны без регистрации и подписки, а введенные вами данные используются только для расчета результата и никогда не сохраняются. Используйте коллекцию как быстрый набор инструментов для разовых задач или добавьте в закладки те, которыми пользуетесь каждый день.