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

Как включить SSL только в определенных местах

У меня есть Apache, который обслуживает приложение, а также веб-службу. Мне нужен веб-сервис через https, но приложение через http. Как включить SSL только в определенном месте? Ни одна из директив SSL не действует внутри

<Location> </Location>

В настоящее время у меня есть

<IfModule ssl_module>
        ServerName www.myserver.com
        SSLEngine on
        SSLCACertificateFile "/usr1/apache/conf/ssl/CAList.pem"
        SSLCertificateFile "/usr1/apache/conf/ssl/mine.crt"
        SSLCertificateKeyFile "/usr1/apache/conf/ssl/mine.pem"
        SSLVerifyClient require
</IfModule>

Но это позволяет использовать ssl на страницах, которые мне не нужны.

HTTPS необходимо настроить на уровне виртуального хоста, поскольку он использует другой порт (порт 443 вместо порта 80 для HTTP).

Поэтому вам нужно настроить HTTPS для всего сайта.

Что вы можете сделать, так это принудительно использовать HTTPS (или даже HTTP) для определенных URL-адресов с помощью Redirect (для одной страницы), RedirectMatch (для нескольких страниц, соответствующих шаблону) или Rewrite (для более сложных запросов, которые включают или исключают определенные условия).

Итак, если кто-то пошел в http://www.example.com/login тогда вы можете перенаправить это на https://www.example.com/login.

Вы также можете перенаправить обратно, чтобы, если кто-то пошел https://www.example.com/normal-page затем вы перенаправляете обратно на http. Обратите внимание, что для этого посетителю необходимо будет пройти полное согласование https-соединения, поскольку перенаправление совпадает с обычной страницей в том смысле, что оно возвращается после настройки https-сеанса.

Интернет быстро переходит в мир полностью HTTPS. Использование HTTPS на всем сайте дает множество преимуществ, и это значительно снижает сложность по сравнению со смешанным сайтом. Некоторые функции (например, получение местоположения из браузера) будут работать, например, только через HTTPS в Chrome, и это будет только увеличиваться. HTTP / 2 будет работать только через HTTPS во всех браузерах в качестве другого примера.

В то же время недостатки HTTPS практически отсутствуют, если у вас есть часть вашего сайта на HTTPS (так что вам придется фактически настроить HTTPS, что может быть сложным и, таким образом, основным недостатком). Да, это небольшое влияние на время начальной загрузки, но после этого, при правильной настройке, почти не будет заметного влияния на производительность, если только он не запущен на действительно древнем оборудовании или не обслуживает большие файлы.

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