我有一个用PHP编写的程序,我想确保登录页面等都通过SSL提供。这样做是否有任何良好的开端完成教程?
此外,这是否会以任何方式影响我的代码,或者仅仅是获取SSL证书和正确设置服务器的问题?
答案 0 :(得分:4)
如果您的html代码包含绝对网址(“ http: // my-domain.com / ...”),请执行以下操作:
浏览器会抱怨“此页面包含安全和非安全项目” 如果可以,请使用相对网址,或链接到“ 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或其他证书颁发机构签名)。