2012-01-08 39 views

Trả lời

165

Với OpenSSL bạn có thể chuyển đổi sang định dạng PFX Apache tương thích với các lệnh tiếp theo:

openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer 
openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain.key 

lệnh đầu tiên chiết xuất khóa công khai để domain.cer.
Lệnh thứ hai trích xuất khóa riêng thành domain.key.

Cập nhật tập tin cấu hình Apache của bạn với:

<VirtualHost 192.168.0.1:443> 
... 
SSLEngine on 
SSLCertificateFile /path/to/domain.cer 
SSLCertificateKeyFile /path/to/domain.key 
... 
</VirtualHost> 
+0

này là mất tích lệnh để tạo tệp cấp quyền chứng chỉ. Câu trả lời dưới đây hoàn chỉnh hơn. – Hawkee

+0

Tính năng này cũng hoạt động trên Windows. 1 lưu ass của tôi. – craigmoliver

3

Took một số dụng cụ xung quanh nhưng đây là những gì tôi đã kết thúc với.

Đã tạo và cài đặt chứng chỉ trên IIS7. xuất khẩu như PFX từ IIS

Convert to pkcs12

openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes 

Chú ý: Trong khi chuyển đổi sang định dạng PFX PEM, openssl sẽ đặt tất cả các giấy chứng nhận và Private Key vào một tập tin duy nhất. Bạn sẽ cần mở tệp trong Trình chỉnh sửa văn bản và sao chép từng chứng chỉ & Khóa cá nhân (bao gồm cả BEGIN/END statements) vào tệp văn bản riêng lẻ của nó và lưu chúng dưới dạng certificate.cer, CAcert.cer, privateKey.key tương ứng.

-----BEGIN PRIVATE KEY----- 
Saved as certificate.key 
-----END PRIVATE KEY----- 

-----BEGIN CERTIFICATE----- 
Saved as certificate.crt 
-----END CERTIFICATE----- 

Đã thêm vào apache vhost w/Webmin.

+0

Nếu bạn không muốn khóa cá nhân và các chứng chỉ kết thúc trong cùng một tệp, hãy sử dụng '-nokeys' (không trích xuất khóa cá nhân) và' -clcerts' (để trích xuất chỉ cert). Đây chính xác là những gì Matej nói. – Bruno

+0

Bruno, cảm ơn. Tôi sẽ cho anh ta giải thưởng câu trả lời đúng. Tốt để biết. – AaronJAnderson

26

Để làm cho nó hoạt động với Apache, chúng tôi cần thêm một bước.

openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer 
openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain_encrypted.key 
openssl rsa -in domain_encrypted.key -out domain.key 

Lệnh cuối cùng giải mã khóa để sử dụng với Apache. Tệp domain.key sẽ trông giống như sau:

-----BEGIN RSA PRIVATE KEY----- 
MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3 
LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp 
YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG 
A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp 
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq 
-----END RSA PRIVATE KEY----- 
+0

NICE! Đối với Bitnami hoặc những người khác cần crt CA là tốt, nhìn vào câu trả lời từ Andron để bao gồm các crt CA. Sử dụng server-ca.crt (thay cho domain-ca.crt trong câu trả lời của Andron), và server.crt (thay cho domain.cer), và server.key (thay cho tên miền domain.key) trong Michael Ferrante's trả lời ở đây. – OldGreg

0

SSLSHopper có một số bài viết khá kỹ về việc di chuyển giữa các máy chủ khác nhau.

http://www.sslshopper.com/how-to-move-or-copy-an-ssl-certificate-from-one-server-to-another.html

Chỉ cần chọn vào liên kết có liên quan ở dưới cùng của trang này.

Lưu ý: họ có trình chuyển đổi trực tuyến cung cấp cho họ quyền truy cập vào khóa riêng của bạn. Chúng có thể được tin cậy nhưng tốt hơn nên sử dụng lệnh OPENSSL (cũng được hiển thị trên trang này) để giữ khóa riêng tư trên máy của riêng bạn.

78

Ngoài ra để

openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer 
openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain.key 

Tôi cũng tạo Certificate Authority (CA) giấy chứng nhận:

openssl pkcs12 -in domain.pfx -out domain-ca.crt -nodes -nokeys -cacerts 

Và bao gồm nó trong Apache tập tin cấu hình:

<VirtualHost 192.168.0.1:443> 
... 
SSLEngine on 
SSLCertificateFile /path/to/domain.cer 
SSLCertificateKeyFile /path/to/domain.key 
SSLCACertificateFile /path/to/domain-ca.crt 
... 
</VirtualHost> 
+5

Lưu ý: nếu chứng chỉ ca sẽ trống - vui lòng không bao gồm dòng này trong tệp cấu hình. – Andron

+6

Tôi nghĩ đây là câu trả lời hay nhất vì nó hoàn chỉnh hơn. – Hawkee

+2

Điều này phải được đánh dấu là câu trả lời đúng. –

Các vấn đề liên quan