У TCP протоколів HTTP та HTTPs, як і в інших, є стандартні порти. Для HTTP це 80, для HTTPs — 443.
Після того, як відвідувач сайту вкаже доменне ім’я в адресному рядку, браузер спробує з’єднатися до порту 80.
Щоб сайт працював тільки з SSL шифруванням (за протоколом HTTPs), необхідно налаштувати перенаправлення (редирект) з однієї адреси типу http://domain.com на іншу — типу https://domain.com. З цієї причини також слід окремо налаштувати віртуальний хост вебсервера не тільки для порту 443, але й для 80, — в іншому випадку при переході по домену замість директорії необхідного віртуального хоста (domain.com) з портом 80 буде відображено вміст або першого в списку віртуального хоста (наприклад, domain.net) з портом 80 (перший у списку хост вважається віртуальним стандартним хостом), або — за відсутності інших віртуальних хостів — вмісту папки, яка задана директивою DocumentRoot . Ця директива, віртуальні хости та інші глобальні налаштування веб-сервера визначаються в головному конфігураційному файлі Apache httpd.conf або apache2.conf. Виходячи з вище сказаного, у файл httpd.conf необхідно додати такі записи:
#объявление виртуального хоста для порта 80: NameVirtualHost 10.10.10.10:80 #объявление виртуального хоста для порта 443: NameVirtualHost 10.10.10.10:443 #виртуальный хост для домена domain.com, порт 443 <VirtualHost 10.10.10.10:443> SSLEngine on SSLCertificateFile /root/mycertificate/ca.crt SSLCACertificateFile /root/mycertificate/ca-bundle.crt SSLCertificateKeyFile /root/mycertificate/ca.key ServerAdmin webmaster@domain.com DocumentRoot /var/www/html/domains/domaincom ServerName domain.com ErrorLog /var/log/domaincom-error_log CustomLog /var/log/domaincom-access_log common </VirtualHost> #виртуальный хост для домена domain.com, порт 80 <VirtualHost 10.10.10.10:80> ServerName domain.com RewriteEngine On RewriteRule (.*) https://domain.com </VirtualHost>
Після внесення змін до файлу httpd.conf потрібно перезавантажити веб-сервер:
service httpd restart
Результатом цього конфігурування буде те, що після підключення до 80 порту запит буде автоматично перенаправлятися на порт 443.
Також можна виконати перенаправлення засобами файлу .htaccess (включивши підтримку його використання у файлі httpd.conf — директива AllowOverride All ).
Примітка
У наведеному вище варіанті конфігурування файлу httpd.conf віртуальний хост для домену domain.com — перший у списку, а отже є віртуальним хостом за замовчуванням. Отже, при вказівці в браузері IP-адреси сервера (в даному випадку, 10.10.10.10) буде відображатися вміст кореневого каталогу domain.com. При переході по всім доменам, які спрямовані на цю IP-адресу, також буде відображатися контент сайту domain.com. Для того, щоб цього не сталося, як перший віртуальний хост необхідно додати хост за замовчуванням:
<VirtualHost 10.10.10.10:80> ServerName * DocumentRoot /var/www/html/default </VirtualHost>