Поиск по сайту:

Как создать самозаверяющие SSL-сертификаты и ключи для Apache в RHEL/CentOS 7.0


SSL (Secure Sockets Layer) – это криптографический протокол, который обеспечивает безопасный поток данных между сервером и его клиентами с использованием симметричных/асимметричных ключей с использованием цифрового сертификата, подписанного центром сертификации. (Калифорния).

Требования

  1. Базовая установка LAMP на RHEL/CentOS 7.0

В этом руководстве описан подход к настройке криптографического протокола связи Secure Sockets Layer (SSL) на веб-сервере Apache, установленном в Red Hat Enterprise Linux/CentOS 7.0< и генерировать самоподписанные сертификаты и ключи с помощью сценария bash, который значительно упрощает весь процесс.

Шаг 1. Установите и настройте Apache SSL

1. Чтобы включить SSL на HTTP-сервере Apache, используйте следующую команду для установки модуля SSL и набора инструментов OpenSSL, который необходим для поддержки SSL/TLS.

yum install mod_ssl openssl

2. После установки модуля SSL перезапустите демон HTTPD и добавьте новое правило брандмауэра, чтобы гарантировать, что порт SSL – 443 – открыт для внешние соединения на вашем компьютере в состоянии прослушивания.

systemctl restart httpd
firewall-cmd --add-service=https   ## On-fly rule

firewall-cmd --permanent  --add-service=https   ## Permanent rule – needs firewalld restart

3. Чтобы проверить SSL-соединение, откройте удаленный браузер и перейдите по IP-адресу вашего сервера с использованием протокола HTTPS на https://server_IP.

Шаг 2. Создайте сертификаты и ключи SSL

4. Предыдущая связь SSL между сервером и клиентом осуществлялась с использованием сертификата и ключа по умолчанию, автоматически сгенерированных при установке. Чтобы сгенерировать новые пары закрытых ключей и самозаверяющих сертификатов, создайте следующий сценарий bash в системном пути к исполняемому файлу (` PATH).

Для этого руководства был выбран путь /usr/local/bin/, убедитесь, что для сценария установлен бит исполняемого файла, а затем используйте его как команду для создания новых пар SSL в /etc/ httpd/ssl/ в качестве местоположения сертификатов и ключей по умолчанию.

nano /usr/local/bin/apache_ssl

Используйте следующее содержимое файла.

#!/bin/bash
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl

echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Apache SSL Certificate and Key!"
read cert

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt

echo -e " The Certificate and Key for $cert has been generated!\nPlease link it to Apache SSL available website!"
ls -all /etc/httpd/ssl
exit 0

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

Заполните его своей информацией и обратите внимание на значение Общее имя, чтобы оно соответствовало полному доменному имени вашего сервера или, в случае виртуального хостинга, чтобы оно соответствовало веб-адресу, к которому вы будете получать доступ при подключении к защищенному веб-сайту.

chmod +x /usr/local/bin/apache_ssl
apache_ssl

6. После создания сертификата и ключа сценарий представит длинный список всех ваших пар Apache SSL, хранящихся в папке /etc/httpd/ssl/.

7. Другой подход к созданию сертификатов и ключей SSL заключается в установке пакета crypto-utils в вашей системе и генерации пар с помощью команды genkey, которая может создавать некоторые проблемы, особенно при использовании на экране терминала Putty.

Итак, я предлагаю использовать этот метод только тогда, когда вы напрямую подключены к монитору.

yum install crypto-utils
genkey your_FQDN

8. Чтобы добавить новый сертификат и ключ на свой веб-сайт SSL, откройте файл конфигурации веб-сайта и замените операторы SSLCertificateFile и SSLCertificateKeyFile новыми парами. местоположение и имена соответственно.

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

Вот и все! Теперь вы можете использовать apache_ssl в качестве командной строки в RHEL/CentOS 7.0 для создания столько пар самозаверяющих сертификатов и ключей, сколько вам нужно, и все они будут храниться в /etc/httpd/ ssl/ путь с файлом ключа, защищенным разрешениями 700.