php站点开发期间的SSL


SSL during php site development

我即将开发一个新网站,当网站被推送到生产服务器时,将需要EV SSL证书。我的问题是,在开发过程中,我不会有EV SSL证书(尽管如果需要,我可以有一个自签名证书)。如果我开发的PHP站点没有SSL证书,然后把它推送到生产服务器,它可能会工作吗?还是会有很多问题?

另外,如果我在本地使用自签名SSL证书进行开发,然后将其推送到具有EV SSL的生产服务器,这会导致任何问题吗?

我只是想在深入讨论之前澄清一下这几点。关于如何在本地开发最终获得SSL证书的站点,是否有任何行业标准或最佳实践?

注意:我将使用Laravel框架来回答这个问题。

如果您正在使用Laravel 3,您可以在application/config/application.php中找到'ssl'的关键字。如果你把这个设置为false(最好在你的dev或类似的配置中),那么当你用任何URL helper方法(URL::to_secure等)生成一个URL到一个安全路由时,Laravel会在那个环境中自动将这些链接转换为http。

我不知道L4中的配置选项,但你可以做的是为它定义你自己的配置变量,并在你的助手URL::to('foo', null, null, config::get('app.ssl',true))中使用它。这样,你就可以在配置中将'ssl'设置为false,就像L3一样使用它。

编辑:我刚刚在IRC中找到了Taylor,他对L4中省略SSL配置的解释是因为他建议在您的开发环境中设置SSL,正如您所建议的那样。出于开发目的,自签名证书就可以了。

通常情况下,从HTTP服务器切换到HTTPS服务器不会有任何问题。使用自签名证书进行开发当然是一个好主意。

可能出错的地方主要有两点:

  1. 应用程序构建以'http://'.开头的绝对链接您可以使用自签名证书或仅构建相对URL来防止此问题。
  2. 会话的安全设置要求SSL(例如,应该将cookie限制为仅SSL)。这在开发环境中更可能是一个问题,这个问题同样可以通过自签名证书来防止。