Công cụ Chuyển Đổi Định Dạng Chứng Chỉ SSL Trực Tuyến
Công cụ chuyển đổi chứng chỉ SSL giữa PEM và DER ngay trên trình duyệt — và liên kết tới các công cụ chuyên biệt của BKNS cho mọi hướng khác (CRT, P7B, PFX) để bạn luôn đến đúng trang chuyển đổi mình cần. Dữ liệu được xử lý hoàn toàn phía client, không gửi lên máy chủ, đảm bảo bảo mật tuyệt đối cho thông tin nhạy cảm.
Định dạng chứng chỉ SSL
Bạn cần chuyển đổi định dạng nào?
PEM, DER, CRT, P7B và PFX là 5 định dạng chứng chỉ SSL phổ biến nhất. Chọn đúng cặp chuyển đổi bên dưới để có một công cụ chuyên biệt, kèm gợi ý lệnh openssl tương đương.
Hoặc dùng nhanh bộ chuyển đổi PEM ⇄ DER ngay tại đây
Làm sao biết bạn đang có định dạng chứng chỉ SSL nào
Đuôi file không phải là bằng chứng cho biết bên trong chứa định dạng gì — điều này khiến rất nhiều người nhầm lẫn. File .pem luôn là văn bản Base64. File .crt và .cer thì mơ hồ: có thể chứa văn bản PEM hoặc dữ liệu nhị phân DER, chỉ nhìn đuôi file thôi thì không biết được. File .pfx/.p12 và .p7b/.p7c luôn là container nhị phân, không bao giờ là văn bản thuần.
Cách nhanh nhất để kiểm tra: mở file bằng trình soạn thảo văn bản thuần. Nếu thấy các dòng đọc được bắt đầu bằng -----BEGIN CERTIFICATE----- (private key dùng đúng lớp bọc đó, chỉ thay chữ CERTIFICATE bằng PRIVATE KEY hoặc RSA PRIVATE KEY), đó là PEM — định dạng văn bản mã hoá Base64, có thể chứa một chứng chỉ hoặc nhiều chứng chỉ nối tiếp nhau. Nếu file mở ra là chuỗi byte nhị phân không đọc được, đó là DER, PFX hoặc P7B, và bạn cần biết chính xác đó là loại container nào trước khi chọn công cụ chuyển đổi — DER chỉ chứa đúng một chứng chỉ, PFX/P12 là container có mật khẩu bảo vệ có thể gộp chứng chỉ, private key và cả chain vào một file, còn P7B (PKCS#7) gộp một hoặc nhiều chứng chỉ — không bao giờ chứa private key — đó là lý do vì sao chuyển P7B sang PFX vẫn yêu cầu bạn nhập private key riêng.
Khi đã biết mình đang có gì và cần gì, hãy chọn đúng hướng chuyển đổi trong 10 công cụ chuyên biệt bên dưới — mỗi công cụ chỉ phục vụ đúng một cặp định dạng, nên chỉ hỏi những trường dữ liệu cặp đó thực sự cần. Bộ chuyển đổi nhanh phía dưới trang này chỉ xử lý PEM ⇄ DER.
Máy chủ hoặc phần mềm của bạn cần định dạng nào
Mỗi phần mềm máy chủ và nền tảng lại yêu cầu một định dạng chứng chỉ khác nhau, và cài nhầm định dạng là một trong những lỗi cấu hình SSL phổ biến nhất.
- Apache và Nginx đọc PEM — văn bản Base64, thường là file
.pem,.crthoặc.keykhai trực tiếp trong cấu hình máy chủ. - IIS và các dịch vụ gốc Windows khác cần PFX/P12 — một file duy nhất có mật khẩu bảo vệ, gộp cả chứng chỉ lẫn private key, đúng loại file mà trình import của IIS yêu cầu.
- Java keystore và một số công cụ import chứng chỉ trên Windows làm việc với P7B — gói chain chứng chỉ, không có private key bên trong, thường dùng để nhập chain trung gian của CA chứ không phải để mang private key của máy chủ.
- File
.crt/.cerxuất hiện ở cả hai thế giới, vì đuôi file không quyết định cách mã hoá — hãy kiểm tra nội dung (xem khối phía trên) trước khi giả định mình đang có loại nào.
Nếu tài liệu của máy chủ ghi rõ định dạng cần dùng, hãy đối chiếu với 5 định dạng trên rồi dùng đúng công cụ chuyển đổi tương ứng bên dưới thay vì đoán mò.
Bảo vệ website với SSL từ BKNS — từ 199.000đ/năm, cài đặt miễn phí
PEM, DER, CRT/CER, PFX/P12, P7B khác nhau ở đâu
Cả năm cái tên đều mô tả cùng một dữ liệu chứng chỉ X.509, chỉ khác cách mã hoá hoặc đóng gói:
- PEM — văn bản Base64 bọc giữa các dòng
-----BEGIN-----/-----END-----. Có thể chứa một chứng chỉ, nhiều chứng chỉ nối tiếp thành chain, hoặc (ở một loại khối khác) một private key. Dễ dán, gửi email, dễ diff. - DER — dữ liệu nhị phân ASN.1 gốc nằm bên dưới PEM. Một file DER chỉ chứa đúng một chứng chỉ; không có khái niệm gộp nhiều chứng chỉ như văn bản PEM.
- CRT / CER — không phải một cách mã hoá riêng, chỉ là quy ước đặt tên file. File
.crt/.cercó thể chứa văn bản PEM hoặc byte DER — phải mở ra mới biết chắc. - PFX / P12 (PKCS#12) — container nhị phân có mật khẩu bảo vệ, có thể gộp chứng chỉ, private key và cả chain vào một file. Đây là định dạng DUY NHẤT trong năm định dạng trên có thể mang private key ngay bên trong container.
- P7B (PKCS#7) — container nhị phân chứa một hoặc nhiều chứng chỉ — thường là một chứng chỉ cùng chain phát hành của nó — nhưng không bao giờ chứa private key.
Hai điểm cần lưu ý về độ chính xác trước khi chuyển đổi: dựng một file PFX mới (đóng gói chứng chỉ và key vào một file) hiện chỉ hỗ trợ key RSA; đọc một file PFX có sẵn thì hoạt động với chứng chỉ ở bất kỳ thuật toán nào, RSA hay ECDSA, và lấy được dữ liệu ra an toàn. Các hướng không đụng tới PFX — PEM⇄DER, PEM⇄CRT, P7B→PEM — thậm chí không đọc thuật toán khoá của chứng chỉ, nên không bị giới hạn RSA/ECDSA theo chiều nào cả.
Mọi lượt chuyển đổi diễn ra hoàn toàn trên trình duyệt của bạn — chứng chỉ và private key không rời khỏi trình duyệt. Khi chuyển vào hoặc đọc ra từ PFX, công cụ dùng thư viện node-forge thay vì Web Crypto API gốc của trình duyệt, vì Web Crypto không có sẵn cách nào để dựng hay đọc container PKCS#12 (PFX). Khi dựng PFX mới, công cụ của BKNS yêu cầu mật khẩu tối thiểu 8 ký tự để bảo vệ private key bên trong; còn khi mở một file PFX có sẵn để đọc, bạn có thể để trống ô mật khẩu, vì một số ít file PFX thực sự không có mật khẩu.