10

注意:存在看起来像重复的问题(链接如下),但其中大部分来自几年前。我想得到一个明确而明确的答案,无论哪种方式都可以证明事情。

从最佳实践和性能/SEO 的角度来看,让整个网站在 HTTPS 中运行现在不是问题吗?

更新:我正在寻找更多的信息来源,尤其是。围绕对 SEO 的影响。添加了赏金

背景: 当我们想要引入一些按钮来生成带有表单的灯箱时,对话就出现了,其中包含收集个人信息的表单(其中一些甚至允许用户登录)。这是在构成网站很大一部分的页面上。由于表单需要安全地收集和提交信息,并且表单不在它们自己的页面上,我们可以看到的最简单的方法是使页面本身成为 HTTPS。

我想要的是一个涵盖将长期运行的流行站点切换到 HTTPS 的问题的答案,例如下面列出的那些:

  1. 每次请求都会协商握手吗?
  2. 所有资产都需要加密吗?
  3. 浏览器不会缓存 HTTPS 内容,包括资产吗?
  4. 不缓存 HTTPS 内容(包括资产(css、js 等))的下游透明代理是否仍然是个问题?
  5. 所有外部资产(跟踪像素、视频等)都需要 HTTPS 版本吗?
  6. HTTPS 和 gzip 在一起可能不开心?
  7. 反向链接和有机链接将始终是 HTTP,因此您将一直处于 301 状态,这会影响 SEO / 性能吗?在整个站点范围内更改此对 SEO 的任何其他影响?

一些大玩家采取了始终运行 HTTPS 的举措,请参阅Always on SSL,这是开创先例/最佳实践吗?

重复/相关问题:
强制整个站点使用 HTTPS 的好做法还是坏做法?
跨整个站点使用 SSL 在整个站点上使用 SSL
还是仅在其中一部分上使用?

4

2 回答 2

12

不确定我是否可以通过参考文献一次性回答所有问题,但这里可以。请酌情编辑:

每次请求都必须协商握手吗?

不,SSL 连接通常被重复用于多个连续请求。曾经与 SSL 相关的开销如今已基本消失。计算机也变得更快了。

所有资产都需要加密吗?

是的,否则浏览器不会认为整个站点是安全的。

浏览器不会缓存 HTTPS 内容,包括资产吗?

我不这么认为,缓存应该可以正常工作。

不缓存 HTTPS 内容(包括资产(css、js 等))的下游透明代理是否仍然是个问题?

对于缓存 SSL 加密连接/资产的代理,代理需要解密连接。这在很大程度上否定了 SSL 的优势。所以是的,代理不会缓存内容。

代理有可能成为客户端和服务器的 SSL 端点,因此它与每个都有单独的 SSL 会话,并且可以看到正在传输的明文。一个 SSL 连接将在代理和服务器之间,代理和客户端将具有使用代理证书签名的单独 SSL 连接。这要求客户端信任代理的证书并且代理信任服务器证书。这可以在公司环境中以这种方式设置。

所有外部资产(跟踪像素、视频等)都需要 HTTPS 版本吗?

是的。

HTTPS 和 gzip 在一起可能不开心?

在不同级别的协议上,应该没问题。在将 SSL 层放在 TCP 流上之后协商 gzip。对于表现良好的服务器和客户端来说,应该没有问题。

反向链接和有机链接将始终是 HTTP,因此您将一直处于 301 状态,这会影响 SEO 吗?

为什么反向链接总是 HTTP?这不一定是给定的。它如何影响 SEO 在很大程度上取决于所讨论的 SE。智能 SE 可以识别出您只是在切换协议,而不是因此而惩罚您。

于 2012-07-25T08:16:49.347 回答
4

1- 每次请求都会协商握手吗?

这里有两个问题:

  • 大多数浏览器不需要在对同一站点的请求之间重新建立新连接,即使使用纯 HTTP 也是如此。HTTP 连接可以保持活动状态,因此,不,您无需在每次 HTTP 请求/响应后关闭连接:您可以将单个连接重新用于多个请求。
  • 当需要并行或后续 SSL/TLS 连接时,您还可以避免执行多次握手。谷歌工程师编写的ImperialViolet - Overclocking SSL (与此问题绝对相关)中解释了多种技术,特别是会话恢复和错误启动。据我所知,大多数现代浏览器至少支持会话恢复。

    这些技术并没有完全摆脱新的握手,而是降低了它们的成本。除了会话重用之外,当需要完美的前向保密时,还可以使用 OCSP 装订(检查证书吊销状态)和椭圆曲线密码套件来减少握手期间的密钥交换开销。这些技术也依赖于浏览器的支持。

    仍然会有开销,如果你需要大规模的网络农场,这仍然是一个问题,但现在这样的部署是可能的(一些大公司也这样做),而几年前这被认为是不可想象的.

2- 所有资产都需要加密吗?

是的,一如既往。如果您通过 HTTPS 提供页面,则它使用的所有资源(iframe、脚本、样式表、图像、任何 AJAX 请求)都需要使用 HTTPS。这主要是因为无法向用户显示页面的哪些部分可以信任,哪些不可以。

3- 浏览器不会缓存 HTTPS 内容,包括资产吗?

是的,他们会的,您可以Cache-Control: public明确地使用来服务您的资产,或者假设浏览器会这样做。(实际上,您应该防止对敏感资源进行缓存。)

4- 不缓存 HTTPS 内容(包括资产(css、js 等))的下游透明代理是否仍然是个问题?

HTTP 代理服务器只是中继 SSL/TLS 连接而不查看它们。但是,一些 CDN 还提供 HTTPS 访问(Google Libraries API上的所有链接都可以通过 获得https://),结合浏览器内缓存,可以提高性能。

5- 所有外部资产(跟踪像素、视频等)都需要 HTTPS 版本吗?

是的,这与第 3 点有关。YouTube 支持 HTTPS 访问这一事实有所帮助。

6- HTTPS 和 gzip 可能不在一起?

他们是独立的。HTTPS 是基于 TLS 的 HTTP,gzip 压缩发生在 HTTP 级别。请注意,您可以直接压缩SSL/TLS 连接,但这很少使用:如果需要,您也可以在 HTTP 级别使用 gzip 压缩(压缩两次没有什么意义)。

7- 反向链接和自然链接将始终是 HTTP,因此您将一直处于 301 状态,这会影响 SEO 吗?

我不确定为什么这些链接应该使用http://. 如果这就是您所指的,那么对于 SEO,URL 缩短服务通常是一个问题。我想我们会看到越来越多的HTTP Strict Transport Security使用,所以https://默认情况下会有更多的 URL。

于 2012-07-25T12:01:17.753 回答