RSA Key Generator: สร้างคู่กุญแจ RSA 2048–4096 ในเบราว์เซอร์
สร้าง public/private key pair ของ RSA ในรูปแบบ PEM (PKCS#8 และ SPKI) ได้ทั้งหมดในเบราว์เซอร์ด้วย RSA Key Generator — ไม่มี server ไม่มีการ upload ขับเคลื่อนด้วย Web Crypto API
Table of Contents
การสร้าง RSA key pair เป็นงานพื้นฐานที่ developer ต้องทำบ่อยมาก ไม่ว่าจะเป็นการตั้งค่า JWT RS256 signing, ยื่น CSR ขอ TLS certificate หรือทำ API authentication ระหว่าง service ปกติเรามักต้องพึ่งคำสั่ง openssl genrsa บนเครื่องที่มี OpenSSL ติดตั้งอยู่ แต่ถ้าคุณอยู่บนเครื่องที่ล็อกสิทธิ์ หรือต้องการ key ด่วนสำหรับทดสอบ การลงและ config tool ทั้งชุดเพื่อรันคำสั่งเดียวก็ฟังดูเกินจำเป็น
RSA Key Generator แก้ปัญหานี้ด้วยการสร้าง RSA public/private key pair ทั้งกระบวนการ ภายใน browser ของคุณ ผ่าน Web Crypto API มาตรฐานของเว็บ ไม่มี server คั่นกลาง ไม่มีการ upload key ไปไหน คุณเลือกขนาด key ได้ตั้งแต่ 2048, 3072 ไปจนถึง 4096 bits แล้วรับผลลัพธ์เป็น PEM (PKCS#8 และ SPKI) พร้อม copy หรือ download ได้ทันที
บทความนี้จะพาคุณไปรู้จัก tool ตัวนี้ตั้งแต่วิธีใช้งาน ความหมายของแต่ละ format ไปจนถึง best practices ในการจัดการ key อย่างปลอดภัย — ข้อมูลทั้งหมดใช้ได้จริงกับงาน production ไม่ใช่แค่ทดสอบ
ทำไมต้องใช้ RSA Key Generator ออนไลน์?
- ไม่ต้องติดตั้งอะไรเลย — เปิดหน้า tool ใน browser ก็สร้าง key ได้ทันที ไม่ต้องมี OpenSSL, WSL, หรือ terminal สักแห่ง เหมาะกับเครื่องที่ถูกจำกัดสิทธิ์หรือเครื่องที่เพิ่ง setup ใหม่
- Private key ไม่พ้นเครื่องคุณ — การสร้าง key ทั้งหมดทำผ่าน Web Crypto API ใน browser ไม่มีการส่งค่าใดๆ ไปยัง server เลย key เกิดขึ้นและอยู่ในเครื่องคุณเท่านั้น
- ครบทุก format ที่ ecosystem ต้องการ — ได้ทั้ง PEM (PKCS#8 สำหรับ private key, SPKI สำหรับ public key) และ Base64 (DER) สำหรับรูปแบบกระทัดรัด ใช้กับ JWT libraries, TLS tools และ config ต่างๆ ได้ทันที
- เลือกขนาด key ได้อิสระ — 2048, 3072 หรือ 4096 bits เลือกได้ตามระดับความปลอดภัยและ performance ที่ระบบคุณต้องการ พร้อม hint ทางเลือกสำหรับแต่ละขนาด
- Copy และ download แยกกันชัดเจน — public key กับ private key แสดงแยกบล็อก มีปุ่ม copy และ download ของใครของมัน ลดโอกาส copy ผิดไฟล์ (พลาดแบบนี้ใน production เจ็ดมาก)
- ใช้ฟรีไม่จำกัดจำนวนครั้ง — สร้างได้ไม่จำกัด ลองหลายขนาด หลาย key สำหรับ environment ต่างๆ ได้เท่าที่ต้องการ ไม่มีการเก็บ log การใช้งาน
คุณสมบัติเด่น (Features)
| คุณสมบัติ | รายละเอียด |
|---|---|
| ขนาด key | 2048 / 3072 / 4096 bits เลือกได้ในหน้าเดียว |
| การสร้าง | 100% ใน browser ผ่าน Web Crypto API — ไม่มี server ไม่มีการ upload |
| รูปแบบ output | PEM (PKCS#8 สำหรับ private key, SPKI สำหรับ public key) |
| รูปแบบเพิ่มเติม | Base64 (DER) สำหรับใครต้องการค่ากระทัดรัด |
| การนำไปใช้ | ปุ่ม copy และ download แยกต่อ key ทั้งสอง |
| ความเป็นส่วนตัว | ไม่มีการเก็บหรือส่ง key ออกจากเครื่องคุณ |
- การ export เป็น PEM ใช้มาตรฐานเดียวกับที่ OpenSSL ใช้ ทำให้ key ที่ได้นำไปใช้กับ openssl rsa, openssl pkey หรือ TLS libraries ต่างๆ ได้ทันทีโดยไม่ต้องแปลง format
- ปุ่ม Base64 (DER) มีประโยชน์เมื่อระบบเป้าหมายรับค่า base64 ของ DER ตรงๆ เช่น config ของบาง SDK หรือการ embed ค่าลง JSON — ประหยัดขั้นตอนการแปลงด้วยมือ
- ทั้งหมดนี้ทำงานใน client-side JavaScript จึงใช้ได้แม้ network ไม่เสถียร หลังจากโหลดหน้าเว็บเสร็จแล้ว
วิธีสร้างคู่กุญแจ RSA
- เปิดหน้า RSA Key Generator ใน browser ของคุณ
- เลือกขนาด key ที่ต้องการ — 2048 bits เป็นค่ามาตรฐานที่เพียงพอสำหรับงานทั่วไป, 3072 สำหรับระดับที่สูงขึ้น หรือ 4096 bits เมื่อต้องการ security margin สูงสุดและยอมแลกกับความเร็ว
- กดปุ่ม Generate แล้วรอสักครู่ — Web Crypto API จะหา prime numbers ขนาดใหญ่ให้ (key ขนาด 4096 bits อาจใช้เวลานานกว่าเล็กน้อย ขึ้นกับสเปคเครื่อง)
- ผลลัพธ์จะแสดงเป็นสองบล็อกแยกกัน — Public Key (SPKI) และ Private Key (PKCS#8) ในรูปแบบ PEM
- กดปุ่ม copy หรือ download ที่อยู่กับแต่ละ key เพื่อนำไปใช้งาน — download จะได้ไฟล์ .pem พร้อมใช้กับ OpenSSL และ tools อื่นๆ ทันที
เข้าใจ RSA Key Formats และขนาดของ key
PKCS#8 vs SPKI
RSA key pair ประกอบด้วย key สองดอกที่ format ต่างกัน — PKCS#8 เป็นมาตรฐานสำหรับ private key (เขียนเป็น -----BEGIN PRIVATE KEY-----) และ SPKI (SubjectPublicKeyInfo) เป็นมาตรฐานสำหรับ public key (-----BEGIN PUBLIC KEY-----) เจตนาที่แท้จริงของสอง format นี้คือความเข้ากันได้ข้าม algorithm — แม้จะเรียกว่า "RSA Key Generator" แต่ container ของ PKCS#8 และ SPKI ระบุ algorithm ไว้ภายใน ทำให้ libraries สมัยใหม่เลือกตัวจัดการที่ถูกต้องให้อัตโนมัติ
สิ่งที่ควรรู้คือปุ่ม generate ของ OpenSSL เวอร์ชันใหม่ก็ export private key เป็น PKCS#8 โดย default แล้ว (-----BEGIN PRIVATE KEY----- แทนที่จะเป็น RSA PRIVATE KEY แบบ PKCS#1 เก่า) ดังนั้น key ที่ได้จาก tool นี้จึง "ใช้ได้เลย" กับ ecosystem สมัยใหม่แทบทั้งหมด
PEM vs Base64 (DER)
PEM คือ DER (binary format) ที่ถูก encode เป็น base64 แล้วห่อด้วย header/footer เช่น -----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY----- — เป็น format ที่มนุษย์อ่าน/คัดลอกได้ และเป็นสิ่งที่ tools ส่วนใหญ่คาดหวัง ส่วน Base64 (DER) คือค่า base64 เปล่าๆ ไม่มี header ใช้ในกรณีที่ระบบรับค่าดิบ เช่น embed ใน JSON config หรือ environment variable บางชนิด
2048 vs 3072 vs 4096 bits
- 2048 bits — มาตรฐาน de facto ที่ระบบส่วนใหญ่ยอมรับ เร็ว น้ำหนักเบา และเพียงพอสำหรับ certificate ส่วนใหญ่ในปัจจุบัน (NIST ยังคงรับรองถึงปี 2030)
- 3072 bits — จุดสมดุลที่ NIST แนะนำสำหรับการใช้งานระยะยาว ให้ security margin มากกว่า 2048 โดยที่ performance ลดลงไม่มาก
- 4096 bits — margin สูงสุดที่คุ้มค่า แต่การ sign/verify ช้ากว่า 2048 อย่างเห็นได้ชัด และบางระบบ legacy อาจไม่รองรับ — เลือกเมื่อต้องการเก็บ key ไว้ใช้นานหลายปี
กฎง่ายๆ: เริ่มที่ 2048 ถ้าระบบเป้าหมายรับได้และ key หมุนเร็ว เลือก 3072/4096 เมื่อ key ต้องอยู่กับระบบนานหลายปีหรือมี compliance กำหนด
สิ่งที่ ecosystem ต้องการ
- OpenSSL — รับ PEM ทั้งสองแบบได้เลย ตรวจสอบได้ด้วย openssl pkey -in private.pem -check หรือ openssl pkey -pubin -in public.pem -text
- JWT RS256 — libraries อย่าง jsonwebtoken (Node.js) หรือ python-jwt รับ PEM ตรงๆ โดย private key ใช้ sign และ public key ใช้ verify
- TLS certificates — ใช้ private key จับคู่กับ CSR เพื่อขอ certificate จาก CA (Let's Encrypt รับ RSA 2048+)
- SSH — ต้องการ format เฉพาะ (OpenSSH format) จึงต้องแปลงอีกขั้น ดูหัวข้อ use cases ด้านล่าง
Use Cases การใช้งานจริง
JWT RS256 Signing Keys
สถานการณ์คลาสสิกที่สุด: คุณต้องสร้าง JWT tokens ที่ service อื่น verify ได้ โดยใช้อัลกอริทึม RS256 สร้าง key pair ด้วย RSA Key Generator แล้วนำ private key ไปเป็นค่า JWT_PRIVATE_KEY ของ auth service ส่วน public key แจกให้ทุก service ที่ต้อง verify token เทียบกับ JWT Generator เพื่อทดสอบ token จริงก่อน ship ข้อดีของ RS256 เทียบกับ HS256 คือ service ที่ verify ไม่ต้องถือ secret เดียวกัน ลดความเสี่ยงจุดล้มเหลวร่วม
TLS/SSL Certificate Signing Requests
เมื่อยื่น CSR ขอ TLS certificate จาก CA เช่น Let's Encrypt คุณต้องมี private key ก่อนเสมอ สร้าง RSA 2048 (หรือ 3072) ด้วย tool นี้ แล้วนำไปสร้าง CSR ด้วย openssl req -new -key private.pem -out server.csr หรือใช้ Certificate Generator สำหรับ self-signed cert ใน environment ทดสอบ สำหรับ production แนะนำให้ใช้คำสั่ง openssl บนเครื่องที่คุณควบคุมได้จริงเพื่อความปลอดภัยสูงสุด
API Authentication และ Service-to-Service Trust
ระบบ microservices มักใช้ private key sign request แล้วให้อีกฝ่าย verify ด้วย public key — เช่น signed request ระหว่าง webhook sender กับ receiver หรือ mTLS handshake ระหว่าง internal services สร้าง key แยกต่อบริการด้วย tool นี้ เก็บ public key ไว้ใน config ของฝั่ง verify แล้วทดสอบ signature จริงด้วย Digital Signature Generator เพื่อให้แน่ใจว่า flow ทั้งหมดทำงานถูกต้อง
SSH และ Git Access (ต้องแปลงอีกขั้น)
SSH ใช้ format เฉพาะของ OpenSSH ไม่ใช่ PKCS#8 โดยตรง ดังนั้นถ้าอยากใช้ key ที่สร้างจาก tool นี้กับ GitHub หรือ server ให้แปลงด้วย ssh-keygen -i -m PKCS8 -f public.pem (สำหรับ public key) หรือใช้ puttygen แปลง private key เป็น PPK สำหรับ PuTTY — ขั้นตอนเพิ่มเติมเล็กน้อยแต่ทำได้ไม่ยาก
Best Practices
- เลือก 2048 เป็น default, 3072/4096 เมื่อต้องการอายุยืน — 2048 bits เพียงพอสำหรับ key ที่หมุนทุก 1–2 ปี ส่วน key ที่ต้องอยู่นานหลายปีควรเป็น 3072 ขึ้ไป
- ถือว่า private key คือรหัสลับสูงสุด — เก็บใน secret manager (เช่น Vault, AWS Secrets Manager) หรืออย่างน้อย encrypt ไว้บนดิสก์ ห้าม commit ลง repo หรือแชร์ผ่าน chat ทุกกรณี
- ตั้งชื่อไฟล์ให้ชัดเจนแยก environment — เช่น jwt-signing-prod.pem กับ jwt-signing-staging.pem ป้องกันปัญหา "key ตัวไหนของ environment ไหน" ที่เป็นสาเหตุของ outage จริงหลายครั้ง
- หมุนเวียน (rotate) key เป็นรอบ — กำหนดรอบ rotation เช่นทุก 12 เดือน โดยเผื่อระยะ overlap ให้ key เก่ายัง verify ได้ระหว่างเปลี่ยน เพื่อไม่ให้ token ที่ออกไปแล้วตายกะทันหัน
- ทดสอบ key ที่สร้างก่อนใช้จริง — รัน openssl pkey -check หรือ sign/verify ครบรอบก่อน config ลง production ใช้เวลาไม่กี่วินาทีแต่ช่วยกันพลาดระดับ deploy
- อย่าใช้ key เดียวกันหลายงาน — แยก key สำหรับ JWT signing, TLS และ code signing ออกจากกัน เพื่อ limit blast radius เมื่อ key หนึ่งหลุด
สร้าง RSA Keys ของคุณวันนี้
ไม่ว่าคุณจะต้องการ key สำหรับ JWT RS256, TLS certificate หรือ signed API requests การเริ่มต้นใช้เวลาไม่ถึงนาที — เปิด RSA Key Generator เลือกขนาด กด generate แล้ว download key ของคุณได้เลย ทั้งหมดเกิดขึ้นใน browser ของคุณเองโดยไม่มี server คั่นกลาง
ถ้าคุณกำลังวางระบบ authentication อยู่ ลองไล่ชุดเครื่องมือให้ครบ flow: สร้าง key ที่นี่ แล้วต่อยอดด้วยเครื่องมืออื่นๆ ของเรา
เครื่องมือที่คุณอาจสนใจ
- Digital Signature Generator — ทดสอบ sign/verify ด้วย key ที่คุณเพิ่งสร้าง
- Certificate Generator — สร้าง self-signed certificate สำหรับ environment ทดสอบ
- JWT Generator — สร้างและ decode JWT tokens เพื่อทดสอบ auth flow ของคุณ
ขอให้สนุกกับการสร้าง key!