Данная статья дает минимальные понятия о том, как запустить сайт на сервере под HTTPS. В статье используется самоподписной ключ, что подходит для использования на личном сайте или в учебных целях. Вы должны не забывать про резервные копии ваших данных!
Установка программного обеспечения
Для работы SSL шифрования на вашем web-сервере вам потребуется несколько программ. В соответствии с предустановленным набором программного обеспечения, вы можете иметь или не иметь в своей системе OpenSSL и mod_ssl, интерфейс Apache для OpenSSL. Воспользуемся YUM чтобы установить их.
yum install mod_ssl openssl
Если данное ПО установлено на ваш сервер - будет предупреждение о существовании пакетов, если нет - установить их.
Создание сертификата
Используя OpenSSL, мы сгенерируем собственный сертификат. Если вы используете это на рабочем сервере, вы, вероятно захотите ключ от доверенного центра сертификации, но если вы используете это на личном сайте или в целях тестирования - собственного сертификата вполне достаточно. Для создания сертификата вам нужно зайти в систему как пользователь root - используйте команду su для root-а или sudo перед следующими командами:
- Генерация приватного ключа
openssl genrsa -out ca.key 1024
- Генерация запроса на сертификат CSR
openssl req -new -key ca.key -out ca.csr
- Генерация самоподписанного ключа
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
- Перемещение полученных файлов в правильные места
1 2 3 |
|
Затем нам нужно обновить конфигурационный файл Apache SSL.
vi +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf
Измените путь до места, где хранится файл ключа. Если вы воспользовались способом описанным выше, то он будет:
SSLCertificateFile /etc/pki/tls/certs/ca.crt
Затем установите правильный путь к файлу сертификата. Если вы следовали инструкциям выше он будет:
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
Сохраните файл и перезагрузите Apache.
/etc/init.d/httpd restart
Настройка виртуальных хостов
Все аналогично тому, как вы создавали VirtualHosts для HTTP на 80 порту - все тоже для HTTPS на порту 443. Типичный виртуальный хост для 80 порта выглядит так:
1 2 3 4 5 6 7 |
|
Чтобы добавить еще одного родственника - сайт на порт 443, необходимо добавить следующее в верхней части вашего файла:
NameVirtualHost *:443
а затем создать запись для VirtualHost;
1 2 3 4 5 6 7 8 9 10 |
|
Перезапустите Apache еще раз, используя:
/etc/init.d/httpd restart
Настройка брандмауэра
Теперь вы владелец сайта работающего на HTTPS с помощью своего сертификата. Если вы не можете подключиться к серверу, то возможно, потребуется открыть порт в брандмауэре. Для этого внесите изменения в ваши правила iptables:
iptables -A INPUT -p tcp –dport 443 -j ACCEPT
/sbin/service iptables save
iptables -L -v
Если Apache при перезагрузке каждый раз спрашивает пароль сертификата
… вам нужно удалить пароль.
Пароль удалить просто:
1 2 3 4 |
|
Попробуйте перегрузить Apache, запроса пароля больше быть не должно.