网络攻击者肆无忌惮、作恶多端,几乎每天都有网络入侵、数据窃取或勒索软件攻击事件登上新闻头条。这些攻击可能会带来灾难性的后果,因此保护 Web 资产和流量不落入黑客之手变得越来越重要。
作为互联网流量的主要类型之一,浏览器和网站之间的 HTTP 流量必然会成为这些攻击的目标。保护 HTTP 流量免遭窃听和篡改的一种基本方法是使用传输层安全 (TLS) 协议对其进行加密。加密流量就是所谓的“HTTPS 流量”,其中“S”代表“安全(secure)”,而在大多数情况下,普通“HTTPP”用于同时指代这两种流量类型。
您可以通过查看 URL 来判断网站是否支持加密:
- 以 https:// 开头的 URL 使用加密
- 以 http:// 开头的 URL 没有加密
使用加密时,许多浏览器还会在地址栏的左端显示挂锁图标。
注:TLS 的前身安全套接字层 (SSL) 现已弃用,尽管存在安全漏洞,但仍被广泛使用。同样,术语 SSL(或 SSL/TLS)通常用于指代 HTTP 流量的加密,即使在实际使用 TLS 时也是如此。
SSL/TLS 和 NGINX
为了帮助您快速了解 NGINX 中的 SSL/TLS 加密,我们来看一些指令。HTTPS 的基本 NGINX 配置非常简单:
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
#...
}
listen
指令指示 NGINX 侦听 443 端口,监测使用 server_name
指令所指定的域(此处为 www.example.com)的 HTTPS 流量(ssl
参数)。
ssl_certificate
和 ssl_certificate_key
指令指定了存储该域的 TLS 证书和密钥的文件。ssl_protocols
和 ssl_ciphers
指令分别指定了此 NGINX 虚拟服务器支持的 SSL/TLS 版本和密码套件(加密算法)。有了这些指令,NGINX 就可以与客户端协商安全连接,并提供经过证书验证的 HTTPS 内容。
观看网络研讨会
描述如何使用 HTTPS 指令是一回事,但理解证书、密钥和密码背后的概念则要复杂得多。如欲深入浅出地了解流量加密,请观看我们免费的点播网络研讨会 — NGINX 101:使用 SSL/TLS 和 NGINX 进行 Web 流量加密。
在网络研讨会中,您可以深入了解 Web 流量加密并学习:
- NGINX 如何与客户端建立受 HTTPS 保护的会话
- 基本和高级 NGINX 配置(提供实时演示)
- 将 HTTP 请求重定向到 HTTPS 的方法
- 推荐的 TLS 设置
如果您对 NGINX 开源版感兴趣,但仍然有疑问,请添加小 N 助手(微信号:nginxoss)加入 NGINX 官方社区群,与社区的小伙伴们进行互动答疑!如欲试用 NGINX Plus,请立即下载 30 天免费试用版,或与我们联系以讨论您的用例。