chuyển đổi định dạng pfx sang p12


119

Tôi cần xuất .pfxchứng chỉ định dạng (từ windows mmc) sang .p12 để sử dụng trong ứng dụng khác. Tôi không thể tìm thấy một cách để làm điều này. Bất cứ ai có thể đề xuất một phương pháp?

Câu trả lời:


202

.p12.pfxđều là tệp PKCS # 12. Tui bỏ lỡ điều gì vậy?

Bạn đã thử đổi tên .pfxtệp đã xuất để có .p12phần mở rộng chưa?


9
Khiến bạn tự hỏi tại sao chúng lại là hai phần mở rộng tệp khác nhau nếu chúng thực sự giống nhau.
BrainSlugs83

29
Lý do có hai phần mở rộng tệp là lịch sử. PFX là một phần mở rộng của Microsoft, trong khi P12 là phần mở rộng của Netscape. Cả hai định dạng hiện đã được điều chỉnh để giống hệt nhau, có nghĩa là các nhà phát triển có thể sử dụng không gian tên .NET System.Security.Cryptography.X509Certificates để làm việc với cả hai định dạng đó. Xem tại đây để biết thêm thông tin.
SnapShot

6
Phần mở rộng tên tệp cho tệp PKCS # 12 là ".p12" hoặc ".pfx". "PFX" của Microsoft đã bị chỉ trích nặng nề vì là một trong những giao thức mật mã phức tạp nhất. PKCS # 12 là phiên bản kế nhiệm cho "PFX" của Microsoft. PKCS # 12 là một trong những họ tiêu chuẩn được gọi là Tiêu chuẩn mật mã khóa công khai (PKCS) do Phòng thí nghiệm RSA xuất bản.
AKS

1
đổi tên không phải lúc nào cũng hoạt động bởi vì. Ví dụ: nếu bạn sử dụng SoapUI và kiểm tra xác thực 2 chiều thì nó không thành công. p12 & pfx có lịch sử trở lại Netscape & IE. chúng là các tệp giống nhau nhưng không giống nhau. vì vậy một số ứng dụng có thể hiểu được cả hai bất kể phần mở rộng và những người khác cần một tương thích p12 hợp lệ 100% như soapUI
M.Hefny

10

Tôi đã gặp sự cố với tệp .pfx có openconnect. Đổi tên không giải quyết được vấn đề. Tôi đã sử dụng keytool để chuyển đổi nó thành .p12 và nó đã hoạt động.

keytool -importkeystore -destkeystore new.p12 -deststoretype pkcs12 -srckeystore original.pfx

Trong trường hợp của tôi, mật khẩu cho tệp mới (new.p12) phải giống với mật khẩu cho tệp .pfx.


2
Không hoạt động, ngay cả khi tôi đã sử dụng cùng một mật khẩu cho cả hai. đã nhận lỗi "lỗi keytool: java.io.IOException: Định dạng keystore không hợp lệ"
John Smith

5

Nếu bạn đang tìm kiếm một quy trình nhanh chóng và thủ công với UI. Tôi luôn sử dụng Mozilla Firefox để chuyển đổi từ PFX sang P12. Đầu tiên nhập chứng chỉ vào trình duyệt Firefox (Tùy chọn> Quyền riêng tư & Bảo mật> Xem chứng chỉ ...> Nhập ...). Sau khi cài đặt, hãy thực hiện xuất để tạo tệp P12 bằng cách chọn tên chứng chỉ từ Trình quản lý chứng chỉ rồi nhấp vào Sao lưu ... và nhập tên tệp rồi nhập mật khẩu.


4

Đây là phần tiếp theo phản ứng của jglouie.

Nếu bạn đang sử dụng openssl để chuyển đổi chứng chỉ PKCS # 12 thành các khóa PEM công khai / riêng tư, thì không cần đổi tên tệp. Giả sử tệp được gọi là cert.pfx, ba lệnh sau sẽ tạo khóa pem công khai và khóa pem riêng được mã hóa:

openssl pkcs12 -in cert.pfx     -out cert.pem     -nodes -nokeys
openssl pkcs12 -in cert.pfx     -out cert_key.pem -nodes -nocerts
openssl rsa    -in cert_key.pem -out cert_key.pem -des3

Hai lệnh đầu tiên có thể nhắc nhập mật khẩu. Đây sẽ là mật khẩu được cung cấp cùng với tệp PKCS # 12.

Lệnh thứ ba sẽ cho phép bạn chỉ định cụm mật khẩu mã hóa cho chứng chỉ. Đây là những gì bạn sẽ nhập khi sử dụng chứng chỉ.


Lệnh đầu tiên ghi đè lệnh thứ hai, vì vậy có lẽ chỉ cần thực hiện bước 2 và 3. FYI cho người đọc, Des3 là mã hóa mặc định cho khóa cá nhân.
goodguys_activate 21/03/18

1

Chạy lệnh này để thay đổi .certtệp thành .p12:

openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt 

Trong trường hợp server.keylà chìa khóa máy chủ và server.certlà một vấn đề cert CA hoặc một file cert tự dấu.

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.