Về công cụ này
JSON Web Key (JWK) là biểu diễn JSON của một khóa mật mã được các thư viện JWT, điểm cuối JWKS (/.well-known/jwks.json) và nhiều API web sử dụng. PEM là định dạng văn bản cũ hơn, được bọc bằng Base64, mà hầu hết công cụ mật mã, máy chủ và tổ chức phát hành chứng chỉ vẫn dùng. Công cụ này chuyển đổi giữa hai định dạng hoàn toàn trong trình duyệt của bạn, sử dụng cùng công cụ WebCrypto mà trình duyệt của bạn đã tin cậy cho TLS.
Chọn chiều chuyển đổi, sau đó chọn loại khóa (RSA, hoặc đường cong elliptic P-256/P-384) và mục đích sử dụng (ký so với mã hóa) khớp với khóa bạn đang chuyển đổi — WebCrypto cần thông tin này để biết cách diễn giải các byte. Khóa công khai chuyển thành JWK không có trường d; PEM khóa riêng/cặp khóa (PKCS#8) tạo ra JWK có n/e/d (RSA) hoặc x/y/d (EC). Chỉ hỗ trợ khóa riêng PKCS#8 không mã hóa và khóa công khai SPKI — PEM PKCS#1 cũ (RSA PRIVATE KEY) hoặc PEM được bảo vệ bằng mật khẩu cần chuyển sang PKCS#8 trước (vd. bằng openssl pkcs8).
Câu hỏi thường gặp
JWKS endpoint là gì và tại sao tôi cần nó?
Endpoint JWKS (JSON Web Key Set) là một URL (thường là `/.well-known/jwks.json`) công bố các khóa công khai mà một nhà cung cấp xác thực (như một nhà cung cấp danh tính OAuth/OIDC) dùng để ký JWT, ở định dạng JWK, để các bên tin cậy có thể lấy và dùng chúng để xác minh chữ ký token. Nếu bạn đang thiết lập nhà phát hành token của riêng mình, bạn sẽ chuyển đổi phần công khai của khóa ký sang JWK để công bố ở đó.
Tại sao chuyển đổi của tôi thất bại với lỗi import?
Nguyên nhân phổ biến nhất là bộ chọn loại khóa hoặc mục đích sử dụng không khớp — ví dụ chọn "EC P-256" cho một khóa thực chất là RSA, hoặc "Mã hóa" cho một khóa được tạo để ký. WebCrypto xác thực thuật toán một cách nghiêm ngặt so với vật liệu khóa thực tế, vì vậy hãy kiểm tra lại xem các bộ chọn có khớp với mục đích tạo ra khóa ban đầu hay không.