Php 如何在symfony 1.4中实现SSL?

Php 如何在symfony 1.4中实现SSL?,php,ssl,symfony1,symfony-1.4,Php,Ssl,Symfony1,Symfony 1.4,目前我们的项目没有任何SSL安全性。项目中的所有URL都可以通过URL访问,如 现在我们要将相同的更改为 此外,我们还创建了一些返回Json数据的Web服务。这些Web服务通过移动设备(如苹果iphone和黑莓)上的URL访问。 Web服务的URL以http开头:// 现在,我们还希望以这样一种方式确保这些Web服务现在只能通过https协议访问,如https://,如果您想使用https,您必须设置Apache才能使用。有很多文章描述了如何在Ubuntu上实现这一点。尝试搜索“ubuntu安装

目前我们的项目没有任何SSL安全性。项目中的所有URL都可以通过URL访问,如

现在我们要将相同的更改为

此外,我们还创建了一些返回Json数据的Web服务。这些Web服务通过移动设备(如苹果iphone和黑莓)上的URL访问。 Web服务的URL以http开头://


现在,我们还希望以这样一种方式确保这些Web服务现在只能通过https协议访问,如https://

,如果您想使用https,您必须设置Apache才能使用。有很多文章描述了如何在Ubuntu上实现这一点。尝试搜索“ubuntu安装ssl apache2”之类的内容

例如:

简而言之:您必须在Apache配置中创建一个新的NameVirtualHost条目,并使其侦听端口443(默认https端口)并设置一个证书。如果您的网站是公共网站,那么我认为您不需要自签名证书(浏览器会告诉用户证书是由服务器本身签名的,因此它不可信)。在网上寻找SSL认证,我在我的一个项目中使用了Verisign。认证之间不应该有太大的区别,用户通常不知道引擎盖下发生了什么,尽管我建议从一个更知名的名字购买(用户可能更喜欢它)

Symfony不负责在HTTPS级别处理您的请求,如果您的Web服务器配置正确,请求将通过HTTPS发送,它将加载PHP和Symfony以生成响应并通过HTTPS发送回。Symfony可以为您做的是将http之间的页面重定向到https站点,如果您想要(或者想要限制某些页面,比如除了登录、注册和更改密码页面以外的所有页面都是不安全的)。不幸的是,我不知道有什么好的插件可以解决这个问题,但基本上你必须在处理请求处理模块/操作之前编写一个过滤器,在任何请求上触发它

这个来源看起来不错:

在你的.htaccess中写下这个,它就可以工作了

RewriteEngine On
RewriteCond %{SERVER_PORT}  !^443$
RewriteRule ^.*$    https://%{SERVER_NAME}%{REQUEST_URI}    [R=301,L]

有两个插件可供使用:

sfSslRequirementPlugin:“为操作提供SSL加密支持” 及
sfSslRequirementExtraPlugin:“通过完全参数化的体系结构,仅在需要时使用ssl协议,增强应用程序安全性。此插件基于sfSslRequirementPlugin,添加了新功能。”

SSL由您的Web服务器处理,而不是由您的编程语言/框架处理——除非您实现了自己的Web服务器(我对此表示怀疑)。如果您使用的是标准的web服务器,那么您的问题属于-请说明您使用的是哪个web服务器。@vstm我们在Ubuntu上使用的是Apache web服务器。