Tình huống này chắc bạn từng gặp: mua SSL cho congtyabc.vn, nhà cung cấp gửi về một file .pem hoặc .crt, cài lên Nginx chạy ngon lành. Nhưng rồi đội vận hành hệ thống nội bộ (một app Java, thiết bị tường lửa, hoặc server Windows) lại báo "invalid certificate format" khi import đúng cái file đó — vì hệ thống ấy cần DER, không phải PEM. Hoặc ngược lại: bạn nhận được file .der từ thiết bị mạng, nhưng Nginx đọc mãi không ra vì nó chỉ hiểu PEM.
Rắc rối hơn nữa là đuôi file .cer có thể là cả hai — nhìn tên file không đoán được gì cả. Bài này giúp bạn phân biệt rành mạch PEM và DER, biết cách nhận diện file mình đang cầm thật ra là loại nào, và chuyển đổi qua lại chỉ trong vài giây.
Chuyển đổi nhanh 1 file ngay: mở công cụ chuyển đổi chứng chỉ SSL, dán nội dung chứng chỉ vào, chọn định dạng đầu vào/đầu ra rồi tải về. Xử lý ngay trên trình duyệt, dữ liệu không gửi lên server, không cần đăng nhập.
Vì sao PEM và DER khác nhau, và vì sao đuôi file hay đánh lừa bạn?
Về bản chất, PEM và DER chứa cùng một nội dung chứng chỉ — chỉ khác cách "đóng gói":
PEM là container dạng text, mã hoá Base64. Mở bằng Notepad hay VS Code là đọc được ngay, luôn có dòng mở đầu
-----BEGIN CERTIFICATE-----và kết thúc-----END CERTIFICATE-----.DER là bản nhị phân của đúng nội dung đó. Mở bằng trình soạn thảo text sẽ chỉ thấy toàn ký tự lạ, không đọc được.
Vấn đề là đuôi file không phản ánh đúng định dạng bên trong:
Định dạngDạng lưu trữĐuôi file thường gặpMở bằng NotepadHệ thống hay dùngPEMText, Base64.pem, .crt, .cerĐọc được, thấy -----BEGIN CERTIFICATE-----Nginx, Apache, hầu hết hệ thống LinuxDERNhị phân.der, .cerKý tự lạ, không đọc đượcJava Keystore, Windows/IIS, một số thiết bị mạng
Chú ý cột đuôi file: .cer xuất hiện ở cả hai hàng. Đây chính là lý do gây nhầm lẫn nhiều nhất — cách chắc ăn duy nhất là mở file bằng trình soạn thảo text và nhìn nội dung thật, chứ không phải nhìn đuôi file.
Bên cạnh PEM/DER, bạn có thể còn nghe tới vài định dạng khác khi làm việc với SSL:
Định dạngLà gìCông cụ chuyển đổi này có hỗ trợ khôngPEMContainer text Base64, chỉ chứa certificateCóDERBản nhị phân của certificateCóPFX / P12Gói cả private key + certificate + chain thành 1 file, hay dùng trên Windows/IISKhôngP7B (PKCS#7)Gói chuỗi chứng chỉ (chain), không kèm private keyKhông
Cần nhấn mạnh: công cụ chuyển đổi chứng chỉ SSL của BKNS Tools chỉ xử lý hai chiều PEM ↔ DER. Nếu bạn đang cầm file .pfx/.p12/.p7b, đó là một họ định dạng khác (đóng gói nhiều thành phần trong một file) — cần tách ra trước bằng công cụ chuyên dụng khác (thường là dòng lệnh OpenSSL), rồi mới chuyển phần certificate PEM/DER qua tool này nếu cần.
3 bước chuyển đổi PEM ↔ DER
Bước 1 — Xác định bạn đang thật sự cầm định dạng gì
Trước khi chuyển đổi, việc đầu tiên là biết chính xác mình đang có gì trong tay — đừng đoán theo đuôi file.
Mở file bằng bất kỳ trình soạn thảo text nào (Notepad, VS Code, gedit...):
-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAKL...
...
-----END CERTIFICATE-----
Thấy đúng khối như trên → đây là PEM, dù đuôi file là .pem, .crt hay .cer.
Nếu mở ra chỉ thấy một mớ ký tự không đọc được (giống dữ liệu nhị phân lẫn lộn) → đây là DER.
Ví dụ thực tế: bạn nhận file server.cer từ nhà cung cấp SSL cho domain banhang.congtyabc.vn, mở ra thấy toàn ký tự lạ — vậy dù đuôi là .cer, nội dung thật bên trong là DER, không phải PEM.
Lỗi hay gặp:
Đoán định dạng theo đuôi file — sai phổ biến nhất, vì
.cer(và đôi khi cả.crt) có thể là PEM hoặc DER tuỳ nơi cấp.Đổi đuôi file bằng tay (rename
chungthu.derthànhchungthu.pem) rồi tưởng là đã chuyển đổi xong — sai hoàn toàn. Đổi tên file không đổi nội dung bên trong, hệ thống đích vẫn đọc lỗi y hệt. Phải chuyển đổi thật sự bằng công cụ ở Bước 2.
Bước 2 — Chuyển đổi bằng công cụ chuyển đổi SSL
Sau khi biết chắc mình đang có PEM hay DER, việc chuyển đổi chỉ còn vài thao tác.
👉 Chuyển đổi: công cụ chuyển đổi chứng chỉ SSL.
Các bước trên tool:
Mở file chứng chỉ, sao chép toàn bộ nội dung rồi dán vào ô nhập.
Chọn định dạng đầu vào đúng loại đang có (PEM hoặc DER — theo kết quả Bước 1).
Chọn định dạng đầu ra bạn cần chuyển tới.
Bấm Chuyển đổi, sau đó tải file kết quả về.
Điểm đáng chú ý: tool xử lý ngay trên trình duyệt của bạn, không gửi nội dung chứng chỉ lên server nào cả. Với file liên quan trực tiếp tới hệ thống production, đây là điểm cộng bảo mật đáng kể — càng ít nơi chạm vào chứng chỉ của bạn càng tốt.
Ví dụ thực tế: nhà cung cấp SSL gửi file PEM cho website banhang.congtyabc.vn chạy trên Nginx, nhưng đội vận hành ứng dụng Java nội bộ cần import vào keystore, mà keytool của Java lại yêu cầu DER. Bạn chỉ cần dán nội dung file PEM, chọn đầu vào PEM / đầu ra DER, bấm chuyển đổi, tải file .der về rồi đưa cho đội Java import thẳng vào keystore.
Lỗi hay gặp:
Chọn sai định dạng đầu vào (chọn DER trong khi đang dán nội dung PEM, hoặc ngược lại) → tool báo nội dung không hợp lệ. Quay lại Bước 1 xác định lại cho chắc.
Chọn định dạng đầu ra trùng đầu vào (PEM → PEM) → tool báo lỗi vì không có gì để chuyển đổi.
Dán nhầm private key (file
.key) thay vì certificate — tuyệt đối đừng dán private key lên bất kỳ công cụ web nào, dù tool này không gửi dữ liệu lên server. Công cụ này chỉ cần phần certificate công khai, không cần và không nên đụng tới private key.Dán nhầm chứng chỉ trung gian (intermediate/CA bundle) thay vì chứng chỉ chính của domain — kết quả vẫn đúng định dạng nhưng sai nội dung, hệ thống đích vẫn báo lỗi chain khi bạn cài lên.
Bước 3 — Kiểm tra lại chứng chỉ sau khi chuyển đổi
Chuyển đổi xong, nên kiểm tra lại trước khi đưa vào hệ thống thật, tránh mất công cài rồi mới phát hiện sai.
👉 Đọc lại nội dung file vừa chuyển: công cụ giải mã chứng chỉ SSL — xem CN, SAN, ngày hết hạn, đơn vị cấp có khớp với file gốc trước khi chuyển hay không.
Sau khi đã cài chứng chỉ lên server hoặc thiết bị đích:
👉 Kiểm tra domain đang chạy đúng cert: công cụ kiểm tra SSL.
👉 Nếu chỉ cần rà soát ngày hết hạn trước khi gia hạn: công cụ kiểm tra hạn SSL.
Chuyển đổi mất bao lâu, khi nào cần làm?
Thời gian: gần như tức thì — dán nội dung, chọn định dạng, tải về chỉ mất vài giây, không phải cài đặt gì thêm.
Khi nào cần: phổ biến nhất là khi hệ thống đích đòi định dạng khác với file bạn đang có — Java Keystore, Windows/IIS, một số thiết bị mạng (router, tường lửa, cân bằng tải) thường cần DER, trong khi Nginx/Apache và hầu hết hệ thống Linux dùng PEM.
Không cần cài OpenSSL hay phần mềm gì: với nhu cầu chuyển đổi PEM ↔ DER thông thường, một trình duyệt là đủ.
Câu hỏi thường gặp (FAQ)
Làm sao biết file .cer của mình là PEM hay DER? Mở file bằng trình soạn thảo text bất kỳ. Thấy dòng -----BEGIN CERTIFICATE----- và đọc được nội dung → đó là PEM. Thấy toàn ký tự lạ, không đọc được → đó là DER. Đuôi file .cer không nói lên điều gì chắc chắn.
Tool này có chuyển được file .pfx hoặc .p12 không? Không. Công cụ chỉ chuyển đổi hai chiều PEM ↔ DER. File PFX/P12 gói cả private key lẫn certificate trong một file, khác họ định dạng — cần tách ra bằng công cụ khác trước, rồi mới đưa phần certificate (PEM hoặc DER) vào tool này nếu cần chuyển tiếp.
Dán private key vào công cụ web như vậy có an toàn không? Công cụ chuyển đổi chứng chỉ SSL của BKNS Tools xử lý ngay trên trình duyệt, không gửi dữ liệu lên server. Nhưng lưu ý: tool này chỉ cần phần certificate, hoàn toàn không cần private key — nên đừng dán private key vào bất kỳ công cụ nào (kể cả công cụ này) nếu không thật sự cần thiết, đó là thói quen an toàn nên giữ.
Nginx/Apache cần định dạng nào, còn Windows/Java thì sao? Nginx và Apache — cũng như hầu hết hệ thống Linux — đọc PEM là chuẩn. DER thường cần cho Java Keystore, một số cấu hình Windows/IIS và vài thiết bị mạng chuyên dụng. Nếu không chắc, cứ thử PEM trước vì đây là định dạng phổ biến hơn.
BKNS Tools — bộ công cụ SSL miễn phí cho quản trị hệ thống. Chuyển đổi PEM ↔ DER · Kiểm tra SSL · Giải mã chứng chỉ · Kiểm tra hạn SSL — không cần đăng nhập.




