Как я могу преобразовать файл сертификата PFX для использования с Apache на сервере Linux? - PullRequest
103 голосов
/ 08 января 2012

Как я могу преобразовать файл сертификата PFX для использования с Apache на сервере Linux?

Я создал PFX из служб сертификации Windows. PFX содержит всю цепочку сертификатов. (Который является просто корнем и основным сертификатом, без промежуточного звена.)

Веди меня, мудрые.

Ответы [ 5 ]

188 голосов
/ 08 января 2012

С OpenSSL вы можете конвертировать pfx в формат, совместимый с Apache, с помощью следующих команд:

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

Первая команда извлекает открытый ключ в domain.cer.
Вторая команда извлекает закрытый ключ для domain.key.

Обновите файл конфигурации Apache с помощью:

<VirtualHost 192.168.0.1:443>
 ...
 SSLEngine on
 SSLCertificateFile /path/to/domain.cer
 SSLCertificateKeyFile /path/to/domain.key
 ...
</VirtualHost>
95 голосов
/ 27 марта 2013

Дополнительно к

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

Я также сгенерировал сертификат Центра сертификации (CA):

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

И включил его в конфигурационный файл Apache:

<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>
31 голосов
/ 01 февраля 2013

Чтобы заставить его работать с Apache, нам понадобился один дополнительный шаг.

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

Последняя команда расшифровывает ключ для использования с Apache. Файл domain.key должен выглядеть следующим образом:

-----BEGIN RSA PRIVATE KEY-----
MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
-----END RSA PRIVATE KEY-----
3 голосов
/ 08 января 2012

Взял немного инструментов, но на этом я и остановился.

Сгенерирован и установлен сертификат на IIS7.Экспортируется как PFX из IIS

Преобразование в pkcs12

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

ПРИМЕЧАНИЕ. При преобразовании PFX в формат PEM openssl объединит все сертификаты и закрытый ключ в один файл.Вам нужно будет открыть файл в текстовом редакторе и скопировать каждый сертификат и закрытый ключ (включая операторы BEGIN / END) в его отдельный текстовый файл и сохранить их как Certificate.cer, CAcert.cer, privateKey.key соответственно.

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

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

Добавлено в apache vhost с Webmin.

0 голосов
/ 06 февраля 2013

SSLSHopper содержит несколько довольно подробных статей о перемещении между различными серверами.

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

Просто выберите соответствующую ссылку внизу этой страницы.

Примечание: онииметь онлайн-конвертер, который дает им доступ к вашему личному ключу.Возможно, им можно доверять, но было бы лучше использовать команду OPENSSL (также показанную на этом сайте), чтобы сохранить закрытый ключ на вашем собственном компьютере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...