【发布时间】:2011-04-21 09:03:57
【问题描述】:
在一个标准的“小册子”站点中,我有一个子系统,其中私人数据在一系列页面中来回传递。该站点已完成并可以在没有 HTTPS 的情况下运行。
谁能指出我需要执行的步骤列表,以便在网站的安全部分实施 HTTPS?
【问题讨论】:
在一个标准的“小册子”站点中,我有一个子系统,其中私人数据在一系列页面中来回传递。该站点已完成并可以在没有 HTTPS 的情况下运行。
谁能指出我需要执行的步骤列表,以便在网站的安全部分实施 HTTPS?
【问题讨论】:
网站必须自己配置,这点与php本身无关。
在您的本地 PC 上,我认为您使用 Apache 作为 Web 服务器。 所以对于 Apache 你需要安装一个证书,Apache 需要监听 https 端口(默认为 443)。
你可以查看这个链接,它可以帮助你:http://www.onlamp.com/pub/a/onlamp/2008/03/04/step-by-step-configuring-ssl-under-apache.html
此外,在网站的所有部分中,您需要在 url 中使用 https 协议,而不是 http。 例如。 https://example.com
【讨论】:
不涉及 PHP 代码更改。 HTTPS 意味着浏览器和网络服务器之间的通信将被加密的数据。浏览器已经设置了 HTTPS,您所要做的就是配置您的 Web 服务器。很可能您可以从主机控制面板本身进行全部更改。
如果你想强制使用 HTTPS,你可以使用一行 mod_rewrite 代码
【讨论】:
作为程序员,您唯一需要做的就是检查用户是否确实使用了 HTTPS:
if($_SERVER['SERVER_PORT'] !== 443 &&
(empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] === 'off')) {
header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
exit;
}
然后(让您的系统管理员)订购并在 Web 服务器上安装 SSL 证书。
【讨论】:
试试这个:
<?php
if ($_SERVER['HTTPS'] != 'on') {
echo '<script type="text/javascript">window.location = "https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . '";</script>';
}
?>
【讨论】: