Назад | Перейти на главную страницу

Веб-сайт только HTTPS

Допустимо ли запускать веб-сайт, который обслуживает только HTTPS, а не HTTP. Рассмотрим ситуации, когда в адресной строке вводятся простые доменные имена. Обычно сайты перенаправляют пользователя на HTTPS-версию.

Есть веская причина хотеть предоставлять только HTTPS. Рассмотрим этот сценарий:

Зависит от сайта.

Ситуация, описанная выше, может быть предотвращена только в том случае, если сервер вообще не принимает соединение через порт 80; удобная переадресация или даже страница с ошибкой с надписью «используйте https!» позволит отправить незашифрованный запрос API. Конечно, если это не сработает, звонящий должен заметить и исправить свою ошибку после одной неудачной попытки - и, надеюсь, он не тестирует конфиденциальные данные.

Приемлема ли эта единственная незащищенная попытка связи (надеюсь, с неконфиденциальными данными) полностью зависит от ваших потребностей в безопасности.


Если сайт используется только для вызовов API, то вполне нормально оставить порт 80 выключенным.

Если пользователи будут посещать сайт в браузере (вводя адрес вручную), то не ожидайте, что сможете оставить порт 80 выключенным без замешательства и раздражения пользователей.

Я действительно не вижу веских причин не делать этого. Если ваш сайт должен быть полностью защищен, ничто не мешает вам работать только через SSL.

Вот КБ о том, как это сделать: Apache: перенаправить http на https Безопасное соединение Apache - принудительное подключение HTTPS

Чтобы разрешить только SSL-соединения, вы также можете использовать SSLRequireSSL в конфигурации вашего сервера.

(Не уверен, что это подойдет вам, так как он перенаправит ВЕСЬ трафик с порта 80 на порт 443 для всего вашего сервера, но это также может сработать):

Измените iptables, чтобы перенаправить порт 80 на порт 443:

--iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
--iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
--iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 443