Sự khác nhau giữa là gì .pem
, .cer
và.der
gì?
Theo như tôi biết, .cer
có chứa khóa công khai. Có bất kỳ khuôn khổ mở nào mà tôi có thể sử dụng để mã hóa dữ liệu của mình bằng khóa công khai này không?
Sự khác nhau giữa là gì .pem
, .cer
và.der
gì?
Theo như tôi biết, .cer
có chứa khóa công khai. Có bất kỳ khuôn khổ mở nào mà tôi có thể sử dụng để mã hóa dữ liệu của mình bằng khóa công khai này không?
cp
lệnh có thể làm :)
Câu trả lời:
.pem
, .cer
và.der
đều là những phần mở rộng tập tin cho các tập tin có thể chứa một chứng chỉ X.509 v3.
.der
mở rộngDER là phương pháp mã hóa dữ liệu tạo nên chứng chỉ. Bản thân DER có thể đại diện cho bất kỳ loại dữ liệu nào, nhưng thông thường nó mô tả chứng chỉ được mã hóa hoặc vùng chứa CMS.
Cấu trúc của chứng chỉ được mô tả bằng ngôn ngữ biểu diễn dữ liệu ASN.1. BER và DER là các phương pháp mã hóa nhị phân cho dữ liệu được ASN.1 mô tả.
.pem
mở rộngPEM là một phương pháp mã hóa dữ liệu nhị phân dưới dạng chuỗi (giáp ASCII). Nó chứa đầu trang và dòng chân trang (xác định loại dữ liệu được mã hóa và hiển thị bắt đầu / kết thúc nếu dữ liệu được xâu chuỗi với nhau) và dữ liệu ở giữa là dữ liệu cơ sở 64. Trong trường hợp nó mã hóa một chứng chỉ, nó sẽ chỉ chứa mã hóa cơ sở 64 của chứng chỉ DER. PEM là viết tắt của Privacy Enhanced Mail; thư không được chứa các giá trị nhị phân chưa được mã hóa như DER trực tiếp.
PEM cũng có thể mã hóa / bảo vệ các loại dữ liệu khác có liên quan đến chứng chỉ như khóa công khai / riêng tư, yêu cầu chứng chỉ, v.v. Nếu nội dung là chứng chỉ X509v3 thông thường thì PEM được mã hóa thành:
-----BEGIN CERTIFICATE-----
... base 64 encoding of the DER encoded certificate
with line endings and padding with equals signs ...
-----END CERTIFICATE-----
Lưu ý rằng tệp PEM cũng có thể chứa một chuỗi chứng chỉ hoàn chỉnh, trong đó chuỗi bắt đầu bằng chứng chỉ lá / cuối của dịch vụ, tiếp theo là chứng chỉ đã ký nó, thường lên đến nhưng không bao gồm chứng chỉ gốc đáng tin cậy. Vì vậy, nếu bạn thiếu chứng chỉ, bạn có thể muốn xem lại chứng chỉ đầu tiên.
.cer
hoặc .crt
mở rộng.cer
chỉ là viết tắt của chứng chỉ. Nó thường là dữ liệu được mã hóa DER, nhưng Windows cũng có thể chấp nhận dữ liệu được mã hóa PEM. Bạn cần xem qua nội dung (ví dụ như sử dụng file
tiện ích trên hệ thống posix) để xem những gì bên trong tệp để chắc chắn 100%.
Hãy xem câu trả lời này để biết danh sách mở rộng hơn về những gì được OpenSSL hỗ trợ.
Để sử dụng khóa công khai có trong chứng chỉ (và được ký bằng chữ ký trong chứng chỉ), bạn nên sử dụng bất kỳ thư viện nào phân tích cú pháp chứng chỉ X.509 và thực hiện mã hóa RSA. Bạn có thể sử dụng một công cụ phát hiện / xử lý mã hóa PEM hoặc trước tiên bạn có thể chuyển đổi chứng chỉ sang DER bằng cách loại bỏ mã hóa PEM.
Dòng lệnh OpenSSL chứa nhiều tùy chọn để chuyển đổi giữa PEM và DER, in ra thông tin chứng chỉ cấp cao hoặc phân tích cú pháp ASN.1 để có được chế độ xem cấp thấp về những gì có trong đó.
Giống như hầu hết các cấu trúc ASN.1, chứng chỉ được mã hóa DER luôn bắt đầu bằng một byte 30
là mã hóa thẻ của ASN.1 SEQUENCE
. Nếu bạn thấy nhiều lần lặp lại trong tệp thì điều này không sao cả; nó chỉ là cấu trúc được xác định chặt chẽ.
Tương tự như vậy, cơ sở 64 trong tệp được mã hóa PEM luôn bắt đầu bằng ký tự M
khi ASN.1 SEQUENCE
bắt đầu bằng byte 30
, vì vậy 6 bit đầu tiên 001100
, được dịch thành số 12, là chỉ số của ký tự M
, chữ cái thứ mười ba của bảng chữ cái.