Sự khác biệt giữa một tập tin cer, pvk và pfx là gì?


203

Sự khác biệt giữa một tập tin cer, pvk và pfx là gì? Ngoài ra, những tập tin nào tôi giữ và tôi dự kiến ​​sẽ cung cấp cho các đối tác của mình?


Ngoài ra [1] , [2] , [3]
Pacerier

Câu trả lời:


142

Windows sử dụng phần mở rộng .cer cho chứng chỉ X.509. Chúng có thể ở dạng "nhị phân" (ASN.1 DER) hoặc có thể được mã hóa bằng Base-64 và áp dụng tiêu đề và chân trang (PEM); Windows cũng sẽ nhận ra. Để xác minh tính toàn vẹn của chứng chỉ, bạn phải kiểm tra chữ ký của nó bằng khóa chung của nhà phát hành ... lần lượt là một chứng chỉ khác.

Windows sử dụng .pfx cho tệp PKCS # 12. Tệp này có thể chứa nhiều thông tin mật mã, bao gồm chứng chỉ, chuỗi chứng chỉ, chứng chỉ quyền gốc và khóa riêng. Nội dung của nó có thể được bảo vệ bằng mật mã (có mật khẩu) để giữ khóa riêng tư và bảo vệ tính toàn vẹn của chứng chỉ gốc.

Windows sử dụng .pvk cho một tệp khóa riêng. Tôi không chắc chắn Windows (nếu có) theo tiêu chuẩn nào. Hy vọng chúng là các khóa được mã hóa PKCS # 8. Emmanuel Bourg báo cáo rằng đây là một định dạng độc quyền. Một số tài liệu có sẵn.

Bạn không bao giờ nên tiết lộ khóa riêng của bạn. Chúng được chứa trong các tệp .pfx và .pvk.

Nói chung, bạn chỉ trao đổi chứng chỉ của bạn (.cer) và chứng chỉ của bất kỳ nhà phát hành trung gian nào (nghĩa là chứng chỉ của tất cả các CA của bạn, ngoại trừ CA gốc) với các bên khác.


7
Các tệp PVK không có trong PKCS # 8, đây là định dạng độc quyền. Xem drh-consultancy.demon.co.uk/pvk.html
Emmanuel Bourg

hãy tìm tiện ích pvk2pfx.exe trong SDK Windows
BozoJoe 23/2/2016

@erickson, điểm của phát minh .pvk là gì? Không .pfx đủ?
Pacerier

@Pacerier Có, .pfx không đủ. Tôi không chắc ý của .pvk là gì; Tôi chỉ có thể đoán nó đã được phát minh trong sự thiếu hiểu biết.
erickson

55

Trong nền tảng Windows, các loại tệp này được sử dụng cho thông tin chứng chỉ. Thường được sử dụng cho chứng chỉ SSL và Cơ sở hạ tầng khóa công khai (X.509).

  • Tệp CER: Tệp CER được sử dụng để lưu trữ chứng chỉ X.509. Thường được sử dụng cho chứng nhận SSL để xác minh và xác định bảo mật máy chủ web. Các tập tin chứa thông tin về chủ sở hữu chứng chỉ và khóa công khai. Một tệp CER có thể ở dạng nhị phân (ASN.1 DER) hoặc được mã hóa với Base-64 với tiêu đề và chân trang đi kèm (PEM), Windows sẽ nhận ra một trong hai bố cục này.
  • Tệp PVK: Viết tắt của Khóa riêng. Windows sử dụng các tệp PVK để lưu trữ khóa riêng để đăng nhập mã trong các sản phẩm khác nhau của Microsoft. PVK là định dạng độc quyền.
  • Tệp PFX Định dạng trao đổi cá nhân, là tệp PKCS12. Điều này chứa nhiều thông tin mật mã, chẳng hạn như chứng chỉ, chứng chỉ ủy quyền gốc, chuỗi chứng chỉ và khóa riêng. Nó được bảo vệ bằng mật mã với mật khẩu để giữ khóa riêng tư và bảo vệ tính toàn vẹn của chứng chỉ gốc. Tệp PFX cũng được sử dụng trong các sản phẩm khác nhau của Microsoft, chẳng hạn như IIS.

để biết thêm thông tin, hãy truy cập: Tệp chứng chỉ: .Cer x .Pvk x .Pfx


4
Tệp Cer: .... "tệp chứa thông tin về chủ sở hữu chứng chỉ và khóa chứng chỉ chung và riêng" ... không chính xác. Như erickson đã chỉ ra trong câu trả lời của mình: Nó chỉ chứa thông tin về khóa công khai. Một tập tin .cer có cả khóa riêng và khóa chung sẽ vô dụng.
thor_hayek

1
Cái này sai. Tập tin .Cer không chứa bất kỳ khóa riêng nào. Hãy cải thiện câu trả lời của bạn.
ANewGuyInTown

36

Dưới đây là những ghi chú cá nhân, siêu cô đọng của tôi, theo như chủ đề này liên quan đến tôi hiện tại, cho bất kỳ ai quan tâm:

  • Cả PKCS12PEM đều có thể lưu trữ toàn bộ chuỗi chứng chỉ: khóa chung, khóa riêngcerts gốc (CA) .
  • .pfx == .p12 == " PKCS12 "
    • mã hóa hoàn toàn
  • .pem == .cer == .cert == " PEM "
    • cơ sở 64 (chuỗi) được mã hóa X509 cert (nhị phân) với đầu trang và chân trang
      • base-64 về cơ bản chỉ là một chuỗi "A-Za-z0-9 + /" được sử dụng để biểu thị 0-63, 6 bit nhị phân tại một thời điểm, đôi khi có các ký tự 1 hoặc 2 "=" kết thúc khi có các phần thừa ("=" là "ký tự điền / rác / bỏ qua / vứt bỏ")
      • đầu trang và chân trang là một cái gì đó như "----- BEGIN CHỨNG NHẬN -----" và "----- CHỨNG NHẬN KẾT THÚC -----" hoặc "----- BEGIN KHAI THÁC RIÊNG TƯ --- - "và" ----- KẾT THÚC TIỀN RIÊNG TƯ ----- "
    • Windows nhận ra .cer và .cert là các tệp cert
  • .jks == " Lưu trữ khóa Java "
    • chỉ là một định dạng tệp dành riêng cho Java mà API sử dụng
      • Các tệp .p12 và .pfx cũng có thể được sử dụng với API JKS
  • " Cửa hàng tin cậy " chứa các certs công khai, đáng tin cậy, root (CA) , trong khi " Cửa hàng nhận dạng / cửa hàng chính " chứa các danh tính riêng tư, danh tính; tập tin khôn ngoan, tuy nhiên, chúng là như nhau.

Vậy .pvk được định nghĩa ở đâu?
zwcloud

@zwcloud Tôi đã cho những gì tôi biết vào thời điểm đó. Các câu trả lời khác cho rằng.
Andrew

18

Tôi thực sự đã bắt gặp một cái gì đó như thế này cách đây không lâu ... hãy kiểm tra nó trên msDN (xem câu trả lời đầu tiên)

Tóm tắt:

.cer - chứng chỉ được lưu trữ ở định dạng chuẩn X.509. Chứng chỉ này chứa thông tin về chủ sở hữu chứng chỉ ... cùng với khóa công khai và khóa riêng.

.pvk - tệp được sử dụng để lưu trữ khóa riêng để ký mã. Bạn cũng có thể tạo chứng chỉ dựa trên tệp khóa riêng .pvk.

.pfx - là viết tắt của định dạng trao đổi cá nhân. Nó được sử dụng để trao đổi các đối tượng công cộng và riêng tư trong một tệp duy nhất. Một tệp pfx có thể được tạo từ tệp .cer. Cũng có thể được sử dụng để tạo Chứng chỉ nhà xuất bản phần mềm .

Tôi tóm tắt thông tin từ trang dựa trên gợi ý từ các bình luận.


2
Tôi sẽ khuyên bạn nên trích dẫn hoặc tóm tắt nội dung được liên kết ngoài chính liên kết đó. Bằng cách đó, cả hai bạn đều cung cấp tín dụng phù hợp và bảo vệ chúng tôi khỏi mất thông tin vào lần tiếp theo MS thiết kế lại trang web của họ.
Jonathan Allen

Tôi đã thấy liên kết đó, nhưng tôi không trả lời đầy đủ câu hỏi.
Jonathan Allen

15
Ngoài ra, một số thông tin trong liên kết là sai. Ví dụ: bạn không thể trích xuất khóa riêng từ chứng chỉ. Chắc chắn.
erickson

Để bình luận ở trên, nó không phải là về khai thác. Nó không có nghĩa là có khóa riêng trong các tệp .cer. Một tập tin .cer được cho là được chia sẻ với thế giới bên ngoài, vì vậy nó chỉ mang khóa công khai.
Rajiv
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.