RSA 키 생성기이란?
Web Crypto API를 사용하여 비공개로 RSA 키 쌍을 생성합니다. 1024비트에서 4096비트까지 키 크기를 선택하고 SSH, TLS 인증서, JWT 서명, 암호화 통신용 PEM 형식으로 키를 내보낼 수 있습니다. 개인 키는 절대 기기를 떠나지 않습니다.
Web Crypto API가 무거운 연산을 모두 사용자 기기에서 처리하므로 키는 기기를 절대 벗어나지 않습니다. 1024, 2048, 3072, 4096비트 중에서 고르고, 키 쌍을 암호화(RSA-OAEP)용으로 쓸지 서명(RSASSA-PKCS1-v1_5)용으로 쓸지 정하세요. 내보내기 형식은 네 가지입니다: PEM PKCS#8(최신 기본값), PEM PKCS#1(전통적인 RSA 블록), JWT·OIDC 스택용 JWK, 그리고 authorized_keys에 바로 붙여 넣을 수 있는 OpenSSH ssh-rsa 한 줄입니다. SHA-256 지문으로 서버 기록과 키를 대조할 수 있습니다. 필요하면 개인 키를 암호로 보호할 수 있는데, 표준을 따르는 EncryptedPrivateKeyInfo(PBES2 + PBKDF2-HMAC-SHA256 + AES-256-CBC)로 감싸지며 나중에 openssl pkcs8로 복호화할 수 있습니다. 개인 키만 남았다면 '공개 키 도출' 탭에 붙여 넣어 대응하는 공개 키를 복구하세요.
사용 방법
- RSA 키 크기를 선택하세요 (운영 환경에는 2048비트 또는 4096비트를 권장합니다).
- 출력 형식(PKCS#8, PKCS#1, JWK, OpenSSH)을 고르고 필요하면 개인 키를 암호화할 암호를 설정한 뒤, 생성을 클릭하면 사용자 기기에서 키 쌍이 만들어집니다.
- 선택한 형식으로 공개 키와 개인 키를 복사하거나 내려받으세요.
사용 시기
- 개인 키가 외부 서비스로 절대 나갈 수 없는 프로젝트에서 JWT를 서명할 때.
- 단위 테스트, 스테이징 환경, CI 러너용으로 일회성 키 쌍을 만들 때.
- 새 SSH 사용자나 입사 온보딩 티켓을 위해 새 키를 발급할 때.
결과
JWT 서명을 위한 4096비트 RSA 키 쌍을 생성하세요. 공개 키는 인증 서버 설정에 넣고, 개인 키는 보안 서버에 보관합니다.
자주 묻는 질문
- 2048비트가 좋을까요, 4096비트가 좋을까요?
- 2048은 현재 운영 환경의 최소 기준이고 대부분의 TLS 인증서가 여전히 사용하는 길이입니다. 4096은 10~20년의 추가 안전 여유를 주지만 서명 속도가 약 5배 느립니다. 1024는 현대 위협 모델에서 안전하지 않으며 레거시 호환용으로만 남깁니다.
- 동일한 키 쌍을 암호화와 서명에 동시에 써도 되나요?
- 기술적으로 가능하지만 권하지 않습니다. Web Crypto API는 키 하나당 용도 하나만 허용하며 이는 NIST 권고와도 일치합니다. 한 키에서 두 연산을 섞으면 프로토콜 공격이 생기고 키 회전이 복잡해집니다. 두 쌍을 따로 만드세요.
- 이 도구에서 SSH 키를 어떻게 얻나요?
- OpenSSH 출력 형식(또는 'SSH 키' 프리셋)을 선택하세요. 공개 쪽은 authorized_keys에 바로 쓸 수 있는 ssh-rsa 한 줄로 나오고, 개인 쪽은 id_rsa로 저장하는 표준 PKCS#8 PEM입니다. 이미 PEM 개인 키가 있다면 ssh-keygen -y -f id_rsa > id_rsa.pub로 공개 줄을 도출하거나 PuTTY의 경우 puttygen --to-openssh를 쓸 수도 있습니다. 둘 다 PKCS#8과 PKCS#1 입력을 바로 받습니다.
- 2026년에도 Ed25519 대신 RSA를 선택할 이유가 있나요?
- Ed25519는 더 빠르고 256비트 키이며 SSH와 서명의 현대적 기본값입니다. RSA를 고르는 경우는 호환성이 우선일 때입니다. TLS 루트, 보수적인 기본값을 가진 JWT 라이브러리, 오래된 HSM, 레거시 SAML, EdDSA를 아직 지원하지 않는 상대 등이 해당합니다.
- SHA-256 지문이 실제로 알려주는 것은 무엇인가요?
- 공개키(SPKI 바이트)의 짧은 암호 요약입니다. 전화, Signal 메시지, 대면 같은 별도 채널로 상대와 지문을 맞춰 보면 받은 키가 정말 상대가 만든 키이고 누군가 바꿔치기한 것이 아님을 확인할 수 있습니다.