目前我们的项目没有任何SSL安全性。项目中的所有URL都可以通过http://www.something.com等网址访问。
现在我们要将其更改为https://www.something.com。
另外,我们创建了一些返回Json数据的Web服务。这些网络服务可以通过Apple iphone和Blackberry等移动设备上的网址进行访问。 网络服务的网址以http://
开头现在我们也希望以这样的方式保护这些网络服务,现在只能通过https协议访问这些网络服务,例如 https://
答案 0 :(得分:2)
如果您想使用HTTPS,您必须设置Apache才能这样做。有很多文章描述了如何在Ubuntu上执行此操作。尝试搜索" ubuntu setup ssl apache2"左右。
示例:http://www.linode.com/wiki/index.php/Apache2_SSL_in_Ubuntu
简而言之:您必须在Apache配置中创建一个新的NameVirtualHost条目,并使其侦听端口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 :(得分:1)
HeJ小鼠,
在你的.htaccess中写下它并且有效。
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
答案 2 :(得分:0)
有两个插件可供使用:
sfSslRequirementPlugin :“为操作提供SSL加密支持” 和 sfSslRequirementExtraPlugin :“通过完全参数化的架构,仅在需要时使用ssl协议增强应用程序安全性。此插件基于sfSslRequirementPlugin,添加了新功能。”