Chuyển đổi .pfx sang .cer


155

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:


90

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.


5
Tôi đã thử làm điều này nhưng khi tôi chọn xuất khóa riêng, tôi nhận được tùy chọn .cer (mã hóa DER) bị vô hiệu hóa. và tiện ích midletsigner dù sao cũng cần provatekey ..
Jigar Joshi

3
Bạn phải đánh dấu vào ô khi nhập, thông báo "đánh dấu khóa này là có thể xuất được"
Andrew Cox

11
Cách truy cập Trình quản lý chứng chỉ trong Windows: msdn.microsoft.com/en-us/l Library / ms788967.aspx
James White

12
Cách dễ dàng hơn để mở trình quản lý chứng chỉ Windows là nhập "certmgr.msc" tại dấu nhắc lệnh.
Jan Derk

@AndrewCox, Tuy nhiên, có bất kỳ sự khác biệt nào đằng sau hậu trường giữa việc đánh dấu nó là có thể xuất khẩu và không đánh dấu nó như vậy. Hay nó chỉ đơn giản là một tùy chọn UI?
Pacerier

212

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

9
+1 để giải thích tập tin là gì ngoài việc cung cấp các lệnh.
Joshua Drake

"Mac xác minh lỗi: mật khẩu không hợp lệ?" khi tôi thử nó Tôi không biết bất kỳ mật khẩu nào, tôi chỉ cung cấp tệp mà nhà cung cấp của tôi cung cấp.
Brian Knoblauch

1
CNTT có vẻ như bỏ "-nokeys" hoạt động khi bạn đang cố gắng chuyển đổi chứng chỉ bằng khóa riêng của mình, hãy nói để sử dụng với Fiddler
Gert van den Berg

@Berk, Ngoài OpenSSL, Windows cmd có cách nào để làm điều đó không?
Pacerier

45

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 -Typetham 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.

Chứng chỉ xuất chỉ có sẵn cho một số phiên bản như Win 8.1 và Server 2012 R2. Nếu bạn đang ở một số phiên bản khác như Win 7, thì không có may mắn!
Deep-B

1
Nó nên có mặt trong Server 2012 và Windows 8.0 ( technet.microsoft.com/en-us/l Library / hh848628 (v = wps.620 ) .aspx ), nhưng điểm hay về Windows 7 và như vậy!
Ian Gallagher

@IanGallagher, Làm thế nào để so sánh với tùy chọn của OpenSSL?
Pacerier

Đây là cách thuận tiện hơn nếu bạn không muốn cài đặt công cụ OpenSSL!
Leonardo Herrera

25

Tôi muốn thêm một phương thức mà tôi nghĩ là đơn giản nhất.

  1. 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).

  2. Trong menu bắt đầu, hãy nhập certmgr.msc và vào chương trình CertManager.

  3. 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).


Không nhanh hơn nhiều kể từ khi bạn vẫn sẽ phải certmgr.msc mở để xuất khẩu nó ....
Pacerier

0
openssl rsa -in f.pem -inform PEM -out f.der -outform DER
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.