在我的网站的某个子部分上使用 SSL

在我的网站的某个子部分上使用 SSL

我刚刚从 GoDaddy 购买了 SSL 证书,我想将其安装在我的网络服务器上。但我不希望我的整个网站都受到 SSL 的覆盖。我只想要注册页面、登录和帐户页面。

我的托管公司的一位代表告诉我,SSL 是全站的,除非我购买一个带有新域名的新网站,否则我无法做到这一点。他说创建子域名将不起作用,并会出现错误。

这是真的吗?为什么我看到很多网站都显示正常的 http,而只有当你进入登录页面或注册页面时才会更改为 https?

感谢您的想法。该网站运行在装有 ColdFusion、PHP 和 ASP 的 Windows IIS 7.5 服务器上。

答案1

你必须启用SSL 覆盖整个网站,但您应该能够同时打开 SSL (tcp/443) 和非 SSL (tcp/80) 端口。这样,如果您的 HTML 中有一个包含 http:// 的链接,它将转到非安全端口,但如果您的标记中有 https://,则将使用安全端口。

举例来说,访问 www.facebook.com:默认情况下它是不安全的,但如果你查看主页的 HTML,你会发现以下代码片段:

<form method="POST" action="https://login.facebook.com/login.php?login_attempt=1" id="login_form">

因此,当您输入您的帐户信息并点击“登录”时,表单将被发送到安全版本,但是当您在网站上进行常规浏览时,它是不安全的。

或者您可能拥有不安全的 www.yoursite.com,但拥有安全的“accounts.yoursite.com”或“login.yoursite.com”主机名。然后,您将向浏览器传递一个存储登录状态的 cookie。

请注意,如果人们对您网站的一般浏览不安全,那么攻击者可以嗅探流量并获取 cookie 并冒充用户。这就是最近的 Firesheep 事件的全部内容:

http://www.google.com/search?q=firesheep http://www.google.com/search?q=cookie+session+security

答案2

大多数答案都是针对特定应用的,并且更面向编程。简而言之:

  • 设置 IIS 以接受两个都与该主机建立 HTTP 和 HTTPS 连接,并正常安装 SSL 证书。
  • 编写应用程序代码(PHP 和 Coldfusion 代码)仅用于发射相关页面的 HTTPS URL,
  • 对您的应用程序代码进行编程以核实这些页面的传入请求是通过 HTTPS 进行的(出于安全考虑)。

如何真正做到这一点,很大程度上取决于您的应用程序代码。:-)

相关内容