Как реализовать SSL в Symfony 1.4? - PullRequest
1 голос
/ 12 октября 2011

В настоящее время наш проект не имеет безопасности SSL.Все URL-адреса в проекте могут быть доступны по URL-адресам, таким как http://www.something.com.

Теперь мы хотим изменить его на https://www.something.com.

Кроме того, мы создали несколько веб-сервисов, которые возвращают Jsonданные.Эти веб-сервисы доступны через ссылки на мобильных устройствах, таких как Apple iphone и Blackberry.URL-адреса для веб-сервисов начинаются с http://

Теперь мы также хотим защитить их таким образом, чтобы к этим веб-сервисам теперь можно было получить доступ только через протокол https, например https://

Ответы [ 3 ]

2 голосов
/ 13 октября 2011

Если вы хотите использовать HTTPS, вам нужно настроить Apache для этого.Есть много статей, описывающих, как вы можете сделать это в Ubuntu.Попробуйте поискать «ubuntu setup ssl apache2» или около того.

Пример: http://www.linode.com/wiki/index.php/Apache2_SSL_in_Ubuntu

В двух словах: вам нужно создать новую запись NameVirtualHost в вашей конфигурации Apache и заставить ее слушатьпорт 443 (порт https по умолчанию) и настройте сертификацию.Если ваш веб-сайт является общедоступным, то я полагаю, что вы не хотите самозаверяющей сертификации (браузер сообщит пользователю, что сертификация подписана самим сервером, поэтому ему нельзя доверять).Ищите SSL-сертификацию в сети, я использовал Verisign для одного из моих проектов.Между сертификатами не должно быть больших различий, пользователи обычно не знают о том, что происходит под капотом, хотя я бы посоветовал купить его под более известным именем (пользователям это может понравиться).

Symfony не несет ответственности за обработку ваших запросов на уровне HTTPS. Если ваш веб-сервер настроен правильно, запрос поступает через HTTPS, и он загружает PHP и Symfony, чтобы сгенерировать ответ и отправить его обратно через HTTPS.Symfony может сделать для вас переадресацию страниц между http на сайт https, если вы хотите (или хотели ограничить некоторые страницы, потому что все небезопасно, за исключением страниц входа в систему, регистрации и смены пароля).К сожалению, я не знаю ни одного хорошего плагина для решения этой проблемы, но в основном вам нужно написать фильтр, который срабатывает по любому запросу, непосредственно перед обработкой модуля / действия по обработке запроса.

Этот источник выглядит какхорошо: http://blog.tigregroup.com/programming/creating-an-ssl-redirect-filter-in-symfony/

hth

1 голос
/ 31 января 2012

Hej,

напишите это в свой .htaccess, и оно работает.

RewriteEngine On
RewriteCond %{SERVER_PORT}  !^443$
RewriteRule ^.*$    https://%{SERVER_NAME}%{REQUEST_URI}    [R=301,L]
0 голосов
/ 29 ноября 2013

Есть два плагина для использования:

sfSslRequirementPlugin : «Обеспечивает поддержку шифрования SSL для действий» а также sfSslRequirementExtraPlugin : «Повышайте безопасность своего приложения, используя протокол ssl только при необходимости, через полностью параметризованную архитектуру. Этот плагин основан на sfSslRequirementPlugin, добавляя новые возможности."

...