Có thể chuyển đổi tệp .pfx (Trao đổi thông tin cá nhân) thành tệp .cer (Chứng chỉ bảo mật) không? Trừ khi tôi nhầm, không phải là .cer bằng cách nào đó được nhúng bên trong .pfx? Tôi muốn một số cách để giải nén nó, nếu có thể.
Có thể chuyển đổi tệp .pfx (Trao đổi thông tin cá nhân) thành tệp .cer (Chứng chỉ bảo mật) không? Trừ khi tôi nhầm, không phải là .cer bằng cách nào đó được nhúng bên trong .pfx? Tôi muốn một số cách để giải nén nó, nếu có thể.
Câu trả lời:
cách đơn giản mà tôi tin là nhập nó sau đó xuất nó, sử dụng trình quản lý chứng chỉ trong Windows Management Console.
Các tệp PFX là các gói Tiêu chuẩn Cú pháp Trao đổi Thông tin Cá nhân PKCS # 12 . Chúng có thể bao gồm số lượng khóa riêng tùy ý với các chứng chỉ X.509 đi kèm và chuỗi ủy quyền chứng chỉ (đặt chứng chỉ).
Nếu bạn muốn trích xuất chứng chỉ ứng dụng khách, bạn có thể sử dụng công cụ PKCS12 của OpenSSL .
openssl pkcs12 -in input.pfx -out mycerts.crt -nokeys -clcerts
Lệnh trên sẽ xuất (các) chứng chỉ ở định dạng PEM. Phần mở rộng tệp ".crt" được xử lý bởi cả macOS và Window.
Bạn đề cập đến phần mở rộng ".cer" trong câu hỏi thường được sử dụng cho các tệp được mã hóa DER. Một mã hóa nhị phân. Trước tiên hãy thử tệp ".crt" và nếu nó không được chấp nhận, dễ dàng chuyển đổi từ PEM sang DER:
openssl x509 -inform pem -in mycerts.crt -outform der -out mycerts.cer
Nếu bạn đang làm việc trong PowerShell, bạn có thể sử dụng một cái gì đó như sau, được cung cấp tệp pfx InputBundle.pfx , để tạo tệp chứng chỉ được mã hóa DER (nhị phân) OutputCert.der :
Get-PfxCertificate -FilePath InputBundle.pfx |
Export-Certificate -FilePath OutputCert.der -Type CERT
Dòng mới được thêm vào cho rõ ràng, nhưng tất nhiên bạn có thể có tất cả điều này trên một dòng duy nhất.
Nếu bạn cần chứng chỉ ở định dạng PEM được mã hóa ASCII / Base64, bạn có thể thực hiện các bước bổ sung để làm như được ghi lại ở nơi khác, chẳng hạn như tại đây: https://superuser.com/questions3531548/windows-integrated-utility-to-convert -der-to-pem
Nếu bạn cần xuất sang định dạng khác với mã hóa DER, bạn có thể thay đổi -Type
tham số cho Xuất chứng chỉ để sử dụng các loại được .NET hỗ trợ, như đã thấy trong help Export-Certificate -Detailed
:
-Type <CertType>
Specifies the type of output file for the certificate export as follows.
-- SST: A Microsoft serialized certificate store (.sst) file format which can contain one or more certificates. This is the default value for multiple certificates.
-- CERT: A .cer file format which contains a single DER-encoded certificate. This is the default value for one certificate.
-- P7B: A PKCS#7 file format which can contain one or more certificates.
Tôi muốn thêm một phương thức mà tôi nghĩ là đơn giản nhất.
Chỉ cần nhấp chuột phải vào tệp pfx, nhấp vào "Cài đặt" theo trình hướng dẫn và thêm tệp vào cửa hàng (Tôi đã thêm vào Cửa hàng cá nhân).
Trong menu bắt đầu, hãy nhập certmgr.msc và vào chương trình CertManager.
Tìm chứng chỉ pfx của bạn (các tab ở trên cùng là các cửa hàng khác nhau), nhấp vào nút xuất và làm theo trình hướng dẫn (có một tùy chọn để xuất dưới dạng .CER)
Về cơ bản, nó thực hiện tương tự như câu trả lời của Andrew, nhưng nó tránh sử dụng Windows Management Console (đi thẳng vào nhập / xuất).