Cách dùng Công cụ tạo khóa RSA
- Chọn RSA, ECDSA hoặc Ed25519, sau đó chọn kích thước khóa hoặc đường cong.
- Nhấn Generate key pair.
- Sao chép hoặc tải khóa riêng tư (PKCS#8) và khóa công khai ở định dạng PEM, OpenSSH hoặc JWK.
Nên chọn loại khóa nào?
| Loại | Kích thước | Phù hợp với |
|---|---|---|
| RSA | 2048 (tối thiểu hiện nay), 3072, 4096 | Tương thích tốt nhất: TLS, JWT RS256, hệ thống cũ |
| ECDSA | P-256, P-384, P-521 | Khóa nhỏ, xử lý nhanh: JWT ES256, TLS, API của Apple và các nền tảng đám mây |
| Ed25519 | 256-bit (cố định) | SSH và ký số hiện đại; nhanh và khó dùng sai |
Khóa EC 256-bit cho mức bảo mật tương đương khóa RSA 3072-bit. NIST khuyến nghị RSA 2048 là mức tối thiểu đến năm 2030 và 3072 cho giai đoạn sau đó.
Các định dạng đầu ra
- PKCS#8 PEM (
BEGIN PRIVATE KEY) — định dạng khóa riêng tư chuẩn cho OpenSSL, Node.js, Java, Go và công cụ mã hóa JWT. - SPKI PEM (
BEGIN PUBLIC KEY) — khóa công khai để chia sẻ cho bên xác minh chữ ký của bạn. - OpenSSH (
ssh-rsa AAAA…) — dùng choauthorized_keys. Nếu cần cặp khóa SSH với khóa riêng OpenSSH, hãy dùng công cụ tạo khóa SSH. - JWK — JSON Web Key dùng cho các endpoint JWKS trong OAuth và OpenID Connect.
Tạo khóa trên trình duyệt có an toàn không?
Khóa được lấy từ Web Crypto API, dùng bộ sinh số ngẫu nhiên an toàn về mật mã của hệ điều hành — cùng nguồn mà OpenSSL sử dụng. Khóa chỉ tồn tại trong bộ nhớ của trang này cho đến khi bạn lưu lại. Với khóa dùng lâu dài trên môi trường thực tế, nhiều đội vẫn ưu tiên tạo khóa trực tiếp trên máy sẽ sử dụng chúng (openssl genpkey) hoặc trong thiết bị bảo mật phần cứng (HSM).
Chuyển đổi với OpenSSL
# PKCS#8 → định dạng RSA truyền thống
openssl pkey -in private.pem -traditional -out rsa.pem
# tách khóa công khai
openssl pkey -in private.pem -pubout -out public.pemCũng được tìm dưới tên: tạo khóa rsa, cặp khóa rsa, tạo khóa công khai riêng tư, rsa 2048, tạo khóa pem, tạo khóa ecdsa, tạo jwk online.
Các công cụ dùng kèm tốt với Công cụ tạo khóa RSA
- Giải mã chứng chỉ SSL — Dán chứng chỉ PEM hoặc cả chuỗi chứng chỉ để xem cấp cho ai, bao gồm những tên miền nào, khi nào hết hạn và được ký bằng cách nào.
- Giải mã CSR — Kiểm tra CSR trước khi gửi cho tổ chức cấp chứng chỉ: tên miền, thông tin tổ chức, độ mạnh của khóa và các extension đã yêu cầu.
- Mã hóa & Giải mã AES — Bảo vệ ghi chú, thông tin bí mật hoặc giá trị cấu hình bằng mật khẩu với AES-256, hoặc giải mã văn bản được tạo bởi openssl enc.
- Giải mã JWT — Dán JSON Web Token vào đây để xem header và payload, kiểm tra thời điểm hết hạn và xác minh chữ ký.
Câu hỏi thường gặp
Khóa có được gửi lên máy chủ không?
Nên dùng RSA kích thước bao nhiêu?
Vì sao RSA 4096-bit tạo khóa lâu hơn?
Tôi có thể thêm mật khẩu bảo vệ không?
openssl pkcs8 -topk8 -in private.pem -out encrypted.pem, hoặc dùng ssh-keygen -p với khóa SSH.