阮一峰的网络日志 |
Posted: 25 Aug 2016 05:21 PM PDT 上一篇文章我介绍了 HTTP/2 协议 ,它只有在 HTTPS 环境才会生效。 为了升级到 HTTP/2 协议,必须先启用 HTTPS。如果你不了解 HTTPS 协议(学名 TLS 协议),可以参考我以前的文章。 本文介绍如何将一个 HTTP 网站升级到 HTTPS 。 一、获取证书升级到 HTTPS 协议的第一步,就是要获得一张证书。 证书是一个二进制文件,里面包含经过认证的网站公钥和一些元数据,要从经销商购买。 证书有很多类型,首先分为三种认证级别。
还分为三种覆盖范围。
认证级别越高、覆盖范围越广的证书,价格越贵。 还有一个免费证书的选择。为了推广HTTPS协议,电子前哨基金会EFF成立了 Let's Encrypt,提供免费证书(教程和工具)。 拿到证书以后,可以用 SSL Certificate Check 检查一下,信息是否正确。 二、安装证书证书可以放在 如果使用 Let's Encrypt 证书,请使用自动安装工具 Certbot。 安装成功后,使用 SSL Labs Server Test 检查一下证书是否生效。 三、修改链接下一步,网页加载的 HTTP 资源,要全部改成 HTTPS 链接。因为加密网页内如果有非加密的资源,浏览器是不会加载那些资源的。
上面这行加载命令,有两种改法。
其中,改法二会根据当前网页的协议,加载相同协议的外部资源,更灵活一些。 另外,如果页面头部用到了
四、301重定向下一步,修改 Web 服务器的配置文件,使用 301 重定向,将 HTTP 协议的访问导向 HTTPS 协议。
Apache 的写法(
五、安全措施以下措施可以进一步保证通信安全。 5.1 HTTP Strict Transport Security (HSTS)访问网站时,用户很少直接在地址栏输入 另一种情况是恶意网站使用自签名证书,冒充另一个网站,这时浏览器会给出警告,但是许多用户会忽略警告继续访问。 "HTTP严格传输安全"(简称 HSTS)的作用,就是强制浏览器只能发出 它在网站的响应头里面,加入一个强制性声明。以下例子摘自维基百科。
上面这段头信息有两个作用。
HSTS 很大程度上解决了 SSL 剥离攻击。只要浏览器曾经与服务器建立过一次安全连接,之后浏览器会强制使用 该方法的主要不足是,用户首次访问网站发出HTTP请求时,是不受HSTS保护的。 5.2 Cookie另一个需要注意的地方是,确保浏览器只在使用 HTTPS 时,才发送Cookie。 网站响应头里面,
六、参考链接
(完) |
You are subscribed to email updates from 阮一峰的网络日志. To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States |