JWK 변환기
PEM 키와 JSON 웹 키 간에 변환하세요. PKCS #8, PKCS #1 또는 SEC1 형식의 PEM 개인 키, 공개 키 또는 인증서를 붙여넣으면 JWK를 얻을 수 있습니다. JWK 또는 최대 20개의 키가 포함된 JWKS를 붙여넣으면 PKCS #8 및 SPKI PEM을 얻을 수 있습니다. 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 키를 변환하면 d, p, q, dp, dq, qi 등 RSA의 모든 멤버를 포함하는 개인 JWK와 이에 대응하는 공개 JWK가 생성됩니다. 개인 JWK에는 비밀 키 자료가 포함되므로 공개 JWK만 공유하세요.
JWKS 전체를 변환할 수 있나요?
예. 예를 들어 jwks_uri 엔드포인트에서 가져온 것처럼 최대 20개의 키가 담긴 keys 배열이 있는 문서를 붙여넣으면, 모든 키가 인덱스 및 kid와 함께 PEM으로 변환됩니다. d 멤버를 기준으로 식별되는 개인 JWK는 PKCS #8 개인 키와 SPKI 공개 키를 모두 반환합니다.
대칭 키는 왜 변환할 수 없나요?
kty가 oct인 키는 HMAC 또는 AES용 일반 비밀 바이트이며 PEM 표현이 없습니다. 예를 들어 JWT 생성기에서 직접 사용하세요. 여기서는 oct JWK를 HMAC 비밀 키로 사용할 수 있습니다.
kid 옵션은 어떤 기능을 하나요?
옵션을 켜면 키의 RFC 7638 지문이 생성된 JWK의 kid 멤버로 추가됩니다. 이 지문은 검증기가 JWT의 kid 헤더와 대조할 수 있는 안정적인 키 식별자입니다.
RFC 7638 지문이란 무엇인가요?
고정된 순서로 키의 필수 공개 멤버를 대상으로 계산한 base64url SHA-256 해시입니다. RSA 키의 e, kty, n이나 EC 키의 crv, kty, x, y가 이에 해당합니다. PEM이나 JWK 중 어떤 형식으로 저장하든 같은 키는 항상 같은 지문을 가집니다.
암호화된 키나 OpenSSH 키를 지원하나요?
아니요. 먼저 암호화된 PEM 키에서 암호 구문을 제거해야 합니다. 예를 들면 openssl pkey -in encrypted.pem -out key.pem을 사용하세요. OpenSSH 개인 키는 여기서 읽기 전에 ssh-keygen으로 PEM으로 변환해야 합니다.
어떤 키 유형을 사용할 수 있나요?
RSA, P-256, P-384, P-521 및 secp256k1 곡선의 EC, 그리고 Ed25519, Ed448, X25519, X448 OKP 유형을 지원합니다. DSA 및 Diffie-Hellman 키는 JWK 형식이 없어 설명과 함께 거부됩니다.
개인 키가 보관되나요?
아니요. 이 요청을 처리하는 동안 메모리에서 키를 변환하며, 기록하거나 저장하지 않습니다. 온라인에서는 공개 키를 변환하고, 운영 환경의 개인 키는 직접 제어하는 시스템에서만 다루세요.