Как конвертировать и использовать сертификат PKCS # 12 / PFX на Apache |

Как конвертировать и использовать сертификат PKCS # 12 / PFX на Apache

Мануал

Когда у нас есть несколько серверов, и нам нужно использовать один и тот же SSL-сертификат, например, в среде балансировки нагрузки или с использованием подстановочных SSL-сертификатов, вам необходимо будет передать сертификаты между серверами.

Как правило, передача SSL между сервером и сервером легка, если это между серверами того же типа, что и серверы Linux или серверы Windows.

Но процесс становится немного сложнее, когда дело доходит до Windows на Linux-сервере.

В этом случае нам нужно экспортировать SSL-сертификаты с сервера Windows и хранить файл .pfx.

После этого нам нужно скопировать этот файл .pfx (PKCS # 12 /) на сервер Linux и преобразовать этот файл в совместимый с Apache формат файла, например, отдельный сертификат, пакет CA и файлы закрытого ключа и использовать его.

Это также может потребоваться при переключении хостинговых компаний.

Я объясню точный процесс с пошаговыми инструкциями в этой статье о том, как вы можете успешно использовать сертификат .pfx с сервера Windows на сервере Linux с Apache.

Разница между файлами .pfx и .crt

В чем же отличие между сертификатами .pfx и .crt?

Прежде чем мы начнем наш процесс преобразования, позвольте мне дать вам краткое описание различий между файлами .pfx и .crt.

В принципе, сертификат (.crt-файл) является контейнером для открытого ключа.

Он включает в себя открытый ключ, имя сервера, дополнительную информацию о сервере и подпись, вычисленную центром сертификации (CA).

Во время SSL-рукопожатия, сервер отправляет свой открытый ключ клиенту, который фактически содержит свой сертификат, с несколькими другими цепочками сертификатов.

В других случаях .pfx-файл представляет собой архив PKCS # 12, похожий на контейнер, который может содержать множество объектов с дополнительной защитой паролем.

Обычно архив PKCS № 12 содержит сертификат (возможно, с набором сертификатов CA) и соответствующий ему секретный ключ.

 

Шаг 1. Передача сертификата pfx с сервера Windows на наш Linux-сервер.

Прежде всего, я экспортировал свой сертификат в сертификат .pfx с сервера Windows для своего домена.

И я скопировал этот файл pfx на свой Linux-сервер, используя SCP из своей локальной системы в папку «/ transfered_certificates /».

Вы можете использовать FTP, SCP, wget или использовать любой из этих методов для передачи сертификата pfx на ваш Linux-сервер.

 # transfered_certificates]# ll
-rw-r--r-- 1 root root 5409 Oct 9 10:02 c667cafbf01ffd7310db952e50eaf2b2.pfx 

 

Шаг 2. Преобразование файла .pfx с помощью OpenSSL

Следующий шаг – извлечь наш необходимый сертификат, ключ и комплект CA из этого сертификата .pfx для домена.

Мы можем использовать команду OpenSSL для извлечения этих данных из файла pfx.

Давайте рассмотрим команды для извлечения необходимой информации из этого сертификата pfx.

Извлечение сертификата из файла pfx

Мы можем использовать эту команду для извлечения сведений о сертификате для домена из файла pfx.

 # openssl pkcs12 -in c667cafbf01ffd7310db952e50eaf2b2.pfx -clcerts -nokeys -out itsecforu.ru.crt
Enter Import Password:
MAC verified OK 

Извлечение файла ключа из файла pfx

Мы можем использовать эту команду для извлечения данных ключа для домена itsecforu.ru из файла pfx.

# openssl pkcs12 -in c667cafbf01ffd7310db952e50eaf2b2.pfx -nocerts -nodes -out itsecforu.ru.key
Enter Import Password:
MAC verified OK 

Это действие предоставит нам наш файл ключа домена, а именно itsecforu.ru.key

Извлечение цепочки сертификатов из файла pfx

Мы можем использовать эту команду для извлечения цепочки деталей сертификата из файла pfx.

 # openssl pkcs12 -in c667cafbf01ffd7310db952e50eaf2b2.pfx -out itsecforu.ru-ca.crt -nodes -nokeys -cacerts
Enter Import Password:
MAC verified OK 

Это предоставит нам нашу цепочку сертификатов для нашего домена itsecforu.ru в файле itsecforu.ru-ca.crt.

Мы скопировали эти извлеченные файлы в папку cert в разделе «/ etc / pki / tls / certs /».

Вы можете сделать это, если это необходимо, но если нет, вы можете напрямую указать путь к папке в конфигурации Apache, в которую вы извлекли эти файлы.

 # ll itsecforu.ru*
-rw-r--r-- 1 root root 3689 Oct 9 10:10 itsecforu.ru-ca.crt
-rw-r--r-- 1 root root 1954 Oct 9 10:06 itsecforu.ru.crt
-rw-r--r-- 1 root root 1828 Oct 9 10:07 itsecforu.ru.key 

 

Шаг 3. Добавление сертификата домена SSL для Apache

После преобразования файла .pfx вам нужно будет скопировать вновь созданные файлы на сервер Apache и отредактировать конфигурационный файл Apache для их использования.

Мы создали виртуальный хост для своего домена в папке /etc/httpd/conf.d/, чтобы включить SSL и включили эти извлеченные файлы по мере необходимости.

См.  данные виртуального хоста ниже:

 # cat itsecforu.ru_ssl.conf
<VirtualHost <itsecforu.ru:443>
DocumentRoot "/var/www/html/itsecforu.ru</span>/public_html/"
ServerName www.itsecforu.ru:443
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA

SSLCertificateFile /etc/pki/tls/certs/itsecforu.ru</span>.crt
SSLCertificateKeyFile /etc/pki/tls/certs/itsecforu.ru</span>.key
SSLCertificateChainFile /etc/pki/tls/certs/itsecforu.ru</span>-ca.crt

#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>

BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

# Per-Server Logging:
# The home of a custom SSL log file. Use this when you want a
# compact non-error SSL logfile on a virtual host basis.
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

Вы можете изменить имена файлов и путей в соответствии с вашими файлами сертификатов:
SSLCertificateFile должен быть вашим основным файлом сертификата для вашего доменного имени.
SSLCertificateKeyFile должен быть извлечен из файла ключей.
SSLCertificateChainFile должен быть промежуточным файлом цепочки сертификатов.

Вы можете простерировать наличие ошибок в синтаксисе конфигурационного файла apache:

 # apachectl configtest
Syntax OK
# service httpd restart 

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий