HTTPS 升级指南

上一篇文章我介绍了 HTTP/2 协议 ,它只有在 HTTPS 环境才会生效。

为了升级到 HTTP/2 协议,必须先启用 HTTPS。如果你不了解 HTTPS 协议(学名 TLS 协议),可以参考我以前的文章。

本文介绍如何将一个 HTTP 网站升级到 HTTPS 。

一、获取证书

升级到 HTTPS 协议的第一步,就是要获得一张证书。

证书是一个二进制文件,里面包含经过认证的网站公钥和一些元数据,要从经销商购买。

证书有很多类型,首先分为三种认证级别。

  • 域名认证(Domain Validation):最低级别认证,可以确认申请人拥有这个域名。对于这种证书,浏览器会在地址栏显示一把锁。
  • 公司认证(Company Validation):确认域名所有人是哪一家公司,证书里面会包含公司信息。
  • 扩展认证(Extended Validation):最高级别的认证,浏览器地址栏会显示公司名。

还分为三种覆盖范围。

  • 单域名证书:只能用于单一域名,foo.com的证书不能用于www.foo.com
  • 通配符证书:可以用于某个域名及其所有一级子域名,比如*.foo.com的证书可以用于foo.com,也可以用于www.foo.com
  • 多域名证书:可以用于多个域名,比如foo.com和bar.com

认证级别越高、覆盖范围越广的证书,价格越贵。

还有一个免费证书的选择。为了推广HTTPS协议,电子前哨基金会EFF成立了 Let's Encrypt,提供免费证书(教程工具)。

拿到证书以后,可以用 SSL Certificate Check 检查一下,信息是否正确。

二、安装证书

证书可以放在/etc/ssl目录(Linux 系统),然后根据你使用的Web服务器进行配置。

如果使用 Let's Encrypt 证书,请使用自动安装工具 Certbot

安装成功后,使用 SSL Labs Server Test 检查一下证书是否生效。

三、修改链接

下一步,网页加载的 HTTP 资源,要全部改成 HTTPS 链接。因为加密网页内如果有非加密的资源,浏览器是不会加载那些资源的。

<script src="http://foo.com/jquery.js"></script>

上面这行加载命令,有两种改法。

<!-- 改法一 -->
<script src="https://foo.com/jquery.js"></script>

<!-- 改法二 -->
<script src="//foo.com/jquery.js"></script>

其中,改法二会根据当前网页的协议,加载相同协议的外部资源,更灵活一些。

另外,如果页面头部用到了rel="canonical",也要改成HTTPS网址。

<link rel="canonical" href="https://foo.com/bar.html" />

四、301重定向

下一步,修改 Web 服务器的配置文件,使用 301 重定向,将 HTTP 协议的访问导向 HTTPS 协议。

Nginx 的写法

https://domain.com$request_uri;
}

Apache 的写法(.htaccess文件)。

%{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

五、安全措施

以下措施可以进一步保证通信安全。

5.1 HTTP Strict Transport Security (HSTS)

访问网站时,用户很少直接在地址栏输入https://,总是通过点击链接,或者3xx重定向,从HTTP页面进入HTTPS页面。攻击者完全可以在用户发出HTTP请求时,劫持并篡改该请求。

另一种情况是恶意网站使用自签名证书,冒充另一个网站,这时浏览器会给出警告,但是许多用户会忽略警告继续访问。

"HTTP严格传输安全"(简称 HSTS)的作用,就是强制浏览器只能发出HTTPS请求,并阻止用户接受不安全的证书。

它在网站的响应头里面,加入一个强制性声明。以下例子摘自维基百科

Strict-Transport-Security: max-age=31536000; includeSubDomains

上面这段头信息有两个作用。

(1)在接下来的一年(即31536000秒)中,浏览器只要向example.com或其子域名发送HTTP请求时,必须采用HTTPS来发起连接。用户点击超链接或在地址栏输入http://www.example.com/,浏览器应当自动将http转写成https,然后直接向https://www.example.com/发送请求。

(2)在接下来的一年中,如果example.com服务器发送的证书无效,用户不能忽略浏览器警告,将无法继续访问该网站。

HSTS 很大程度上解决了 SSL 剥离攻击。只要浏览器曾经与服务器建立过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP。

该方法的主要不足是,用户首次访问网站发出HTTP请求时,是不受HSTS保护的。

如果想要全面分析网站的安全程度,可以使用 Mozilla 的 Observatory

5.2 Cookie

另一个需要注意的地方是,确保浏览器只在使用 HTTPS 时,才发送Cookie。

网站响应头里面,Set-Cookie字段加上Secure标志即可。

Set-Cookie: LSID=DQAAAK...Eaem_vYg; Secure

六、参考链接

(完)

时间: 2024-09-23 20:57:01

HTTPS 升级指南的相关文章

Win8.1预览版升级指南及新特性体验

  Windows 8.1预览版升级前的准备 Windows 8.1预览版激动人心地在今天提供了下载,用户想知道传统开始菜单是否恢复?操作系统界面及功能又有何新鲜改进?答案等新系统安装后一定揭晓!小编这就为大家带来Windows 8.1预览版的安装升级指南. 微软官方提供升级和全新安装两种方案 方案一:通过Windows8商店升级 在原Windows8系统的基础上进行升级:通过下载官方更新补丁程序,再连接Windows8应用商店升级系统. 方案二:通过ISO文件全新安装 无法直接升级系统的用户,

[译] ESLint v4.0.0 升级指南

本文讲的是[译] ESLint v4.0.0 升级指南, 原文地址:ESLint Migrating to v4.0.0 原文作者:ESLint 译文出自:掘金翻译计划 译者:吃土小2叉 校对者:薛定谔的猫.sqrthree ESLint v4.0.0 升级指南 ESLint v4.0.0 是 ESLint 的第 4 个主版本.当然,我们希望大多数变更只影响极少数用户.本文旨在帮助您了解具体有哪些更改. 以下列表大致按每个更改可能影响的用户数量进行排序,排序越靠前影响的用户数越多. ESLint

笔记本怎么升级 笔记本硬件升级指南

  笔记本的硬件升级是小白用户比较关心的问题之一,在买电脑之前我们会琢磨笔记本的性能够不够用,买到机器后又会琢磨如果性能不行怎样才能让它行呢?虽然笔记本的硬件扩展性不如台式机丰富,但是依然可以通过一些基本的硬件升级来提升它的性能. 各方面都会有提升的升级:固态硬盘 带来的好处:固态硬盘给笔记本带来的速度提升是各个方面的,它能够缩短各种操作的响应速度,比如开机速度.游戏载入速度.PSD文件打开速度.解压缩大型文件速度等. 原理:这主要是由于固态硬盘采用闪存颗粒存储文件,它的随机读写和持续读写速度都

Linux内核升级指南

一.升级背景 前段时间公司有个项目用到了短信收发的业务,采购了两台16口的Wavecom USB短信猫设备,服务器操作系统是ReadHat5.4,内核2.6.18,插上设备后,操作系统无法自动识别该设备,原因是没有预装该设备USB转串口的驱动程序,可能是只有这个产品不能识别,因为曾经我用过单口的GSM MODEM短信猫测试,可以自动识别出来.后来从供应商处得到信息,说是他们这个产品比较新,版本低的内核没有预装新的USB转串口驱动程序,但现在2.6.32以上内核都自带了USB转串口的驱动,所以最后

Windows Server 2008 X64 SP2安装包升级指南

眼看着SP2RTM包终于发布了,于是非常高兴地开始了下载和安装过程,似乎因为X64的系统用的同志们不是很热,于是X86版的RTM安装包,比X64版的要快许多,尤其是BT中X64的速度一直很慢.不说那么多了,毕竟我下载好了.开始升级. 关于Server2008 X64 SP2 RTM安装包的下载,请参考本文:871 首先来看下安装包的大小信息: 双击开始了安装,启动时间大概是在1:38分,顺便查看了一下当时的系统盘剩余空间,将近11GB,不知道安装过后会变成多少?

无线802.11ac来袭 傲天动联详解升级指南

随着网络对无线传输速度.性能需求越来越高,无线领域的最新标准已经由802.11ac标准所取代,并且已成为无线行业内无不趋之若鹜的目标.从技术上来说, 802.11n标准的产品升级到802.11ac标准后意味着速度.容量.带宽等方面的大幅提升.不难看出,在802.11ac标准大浪潮汹涌来临之际,越来越多的厂商都 纷纷布局802.11ac产品,产业链也逐渐开始成熟.可以预见,802.11ac标准会在企业网领域"大展身手".首先,802.11ac标准使用更干净的5.8GHZ频段,提供更高的频

IBM WebSphere Application Server Network Deployment 8.5.0.X 安装配置及补丁升级指南之Windows系统篇

自从IBM WebSphere Application Server(简称WAS)8.0发布以来,这个版本以及更高版本的安装与之前的WAS 5.x.6.x.7.x版本(也称传统的WAS版本)直接安装的方式做了一些变动,都需要通过IBM Installation Manager(简称IIM)安装管理工具来进行. 为方便新用户在安装时更加容易地完成安装与配置,特书写此安装指南以备参考. 下载地址为:http://www.java2class.net/bbs/viewthread.php?tid=24

布谷技术月刊 1608

布谷技术月刊 1608 干货 Docker学习路线图 Docker学习路线图 如何实现1080P延迟低于500ms的实时超清直播传输技术 详细介绍了视频直播技术 https化的第一步-申请lets-encrypt证书 本文介绍了如何在Let's Encrypt上申请到免费证书 HTTPS 升级指南 本文介绍如何将一个 HTTP 网站升级到 HTTPS 使用 Chrome Timeline 来优化页面性能 Chrome 开发者工具调试性能 常见的网站服务器架构有哪些? 过去十年,编程语言领域有什么

node.js Web应用框架Express入门指南_javascript技巧

一.安装 复制代码 代码如下: $ npm install express 或者在任何地方使用可执行的 express(1) 安装: 复制代码 代码如下: \# 译注:强烈建议这种方式$ npm install -g express 二.快速上手 最快上手 express 的方法是利用可执行的 express(1) 来生成一个应用,如下所示: 创建一个 app: 复制代码 代码如下: $ npm install -g express$ express /tmp/foo && cd /tmp