Как преобразовать файл сертификата PFX для использования с Apache на сервере linux?
Как преобразовать файл сертификата PFX для использования с Apache на сервере linux?
Я создал PFX из служб сертификатов Windows. Файл содержит всю цепочку сертификатов. (Который является только корнем и основным сертификатом, без промежуточного.)
Ведите меня, мудрецы.
5 ответов
С 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>
дополнительно
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>
чтобы заставить его работать с 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. Домен.ключевой файл должен выглядеть так:
-----BEGIN RSA PRIVATE KEY-----
MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
-----END RSA PRIVATE KEY-----
взял некоторые инструменты вокруг, но это то, что я закончил.
сгенерирован и установлен сертификат на IIS7. Экспортируется как PFX из IIS
конвертировать в pkcs12
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
Примечание: при преобразовании PFX в формат PEM openssl поместит все сертификаты и закрытый ключ в один файл. Вам нужно будет открыть файл в текстовом редакторе и скопировать каждый сертификат и закрытый ключ(включая инструкции BEGIN/END) в свой собственный текстовый файл и сохраните их как сертификат.cer, CAcert.КВЖД, закрытый ключ.ключ соответственно.
-----BEGIN PRIVATE KEY-----
Saved as certificate.key
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
Saved as certificate.crt
-----END CERTIFICATE-----
добавлен в apache vhost w / Webmin.
SSLSHopper имеет некоторые довольно подробные статьи о перемещении между различными серверами.
http://www.sslshopper.com/how-to-move-or-copy-an-ssl-certificate-from-one-server-to-another.html
просто выберите соответствующую ссылку внизу этой страницы.
Примечание: у них есть онлайн конвертер, который дает им доступ к вашему закрытому ключу. Им, вероятно, можно доверять, но было бы лучше использовать команду OPENSSL (также показанную на этом сайте) хранить закрытый ключ на своем компьютере.