Câu trả lời:
Bạn có thể sử dụng công cụ dòng lệnh OpenSSL. Các lệnh sau sẽ thực hiện thủ thuật
openssl pkcs12 -in client_ssl.pfx -out client_ssl.pem -clcerts
openssl pkcs12 -in client_ssl.pfx -out root.pem -cacerts
Nếu bạn muốn tệp của mình được bảo vệ bằng mật khẩu, v.v. thì có các tùy chọn bổ sung.
Bạn có thể đọc toàn bộ tài liệu tại đây .
Một góc nhìn khác để làm điều đó trên Linux ... đây là cách thực hiện để tệp duy nhất kết quả chứa khóa cá nhân được giải mã để một thứ như HAProxy có thể sử dụng nó mà không cần nhắc bạn nhập mật khẩu.
openssl pkcs12 -in file.pfx -out file.pem -nodes
Sau đó, bạn có thể cấu hình HAProxy để sử dụng tệp file.pem.
Đây là bản CHỈNH SỬA từ phiên bản trước mà tôi đã thực hiện nhiều bước này cho đến khi tôi nhận ra tùy chọn -nodes chỉ đơn giản là bỏ qua mã hóa khóa riêng. Nhưng tôi để nó ở đây vì nó có thể giúp ích cho việc giảng dạy.
openssl pkcs12 -in file.pfx -out file.nokey.pem -nokeys
openssl pkcs12 -in file.pfx -out file.withkey.pem
openssl rsa -in file.withkey.pem -out file.key
cat file.nokey.pem file.key > file.combo.pem
Sau đó, bạn có thể định cấu hình HAProxy để sử dụng tệp file.combo.pem.
Lý do tại sao bạn cần 2 bước riêng biệt trong đó bạn chỉ ra một tệp có khóa và một tệp khác không có khóa, là vì nếu bạn có một tệp có cả khóa được mã hóa và giải mã, một cái gì đó như HAProxy vẫn nhắc bạn nhập cụm mật khẩu khi nó sử dụng nó.
Mặc dù các câu trả lời khác đều đúng và được giải thích cặn kẽ, nhưng tôi thấy có một số khó khăn khi hiểu chúng. Đây là phương pháp tôi đã sử dụng ( Lấy từ đây ):
openssl pkcs12 -in filename.pfx -out cert.pem -nodes
Trích xuất khóa riêng tư tạo PFX thành tệp PEM:
openssl pkcs12 -in filename.pfx -nocerts -out key.pem
Xuất chứng chỉ (chỉ bao gồm khóa công khai):
openssl pkcs12 -in filename.pfx -clcerts -nokeys -out cert.pem
Xóa mật khẩu (diễn giải) khỏi khóa cá nhân được trích xuất (tùy chọn):
openssl rsa -in key.pem -out server.key