是否有任何关于在您的网络应用程序中使用SSL的初学者教程?

时间:2010-06-21 19:10:41

标签: php ssl

我有一个用PHP编写的程序,我想确保登录页面等都通过SSL提供。这样做是否有任何良好的开端完成教程?

此外,这是否会以任何方式影响我的代码,或者仅仅是获取SSL证书和正确设置服务器的问题?

3 个答案:

答案 0 :(得分:4)

如果您的html代码包含绝对网址(“ http: // my-domain.com / ...”),请执行以下操作:

  • stylesheets
  • images
  • Javascript角

浏览器会抱怨“此页面包含安全和非安全项目” 如果可以,请使用相对网址,或链接到“ https: // my-domain.com / ...”网址。

使用免费证书

您无需花钱获取有效的SSL证书:

让我们加密
Let’s Encrypt是一个免费,自动且开放的证书颁发机构。

这取决于托管设置的容易程度,它可能只是一个复选框 该过程已在https://letsencrypt.org/

中详细记录

<强> startssl如果
对于更传统的证书,您可以从StartCom获得“StartSSL™免费” 该站点还包含有关安装证书的信息。

答案 1 :(得分:1)

首先是警告。如果您正在考虑使用SSL,因为您有一些需要保护的东西。因此,请花时间了解您在每一步中所做的工作。即使对于有经验的人来说,安全性(不仅仅是SSL)也是一个雷区。

我不知道任何教程,但你必须要注意很多问题。

为测试目的而滚动您自己的ssl证书是免费的,但您需要在服务器上安装它。

大多数情况下,对于ssl页面或非ssl,您的代码不需要有任何不同,因为代码本身是ssl不可知的,但正如Bob所说,你必须小心像图像这样的东西。

同样,重定向会导致弹出窗口警告用户重定向。

要测试是否使用SSL检查来自浏览器的代码检查SSL标志$ _SERVER ['HTTPS']如果正在使用SSL,则此值应为非空值。

$ssl_is_on = $_SERVER['HTTPS'] ? true:false;

我个人更喜欢将SSL代码保存在一个单独的文件夹中,并使用apache将所有SSL连接定向到该文件夹​​。这样我就可以确信不应该通过非SSL连接调用应该受SSL保护的脚本。

如果您使用SSL登录,然后将其重定向到非SSL页面,则可能需要考虑域名和Cookie 例如,我总是使用不同的域为ssl正常https; // secure.blah.com,然后将它们重定向到非安全域http; // www.blah.com,所以你的cookie域需要是blah.com default是完整的域名,这意味着secure.blah.com的cookie不会发送到www.blah.com,因此您的用户将永远不会登录。

如果您使用共享域名,请不要使用此技术,否则您可能会遇到泄露Cookie信息的问题。

DC

答案 2 :(得分:0)

它不应该影响您的代码。将modrewrite规则添加到Apache配置中。是的,只需获得SSL证书(您需要付费才能让Verisign或其他证书颁发机构签名)。