原文作者: Robert Haynes
原文链接: 基础知识回顾:借助 SSL/TLS 和 NGINX 进行 Web 流量加密
NGINX 唯一中文官方社区 ,尽在 nginx.org.cn
网络攻击者肆无忌惮、作恶多端,几乎每天都有网络入侵、数据窃取或勒索软件攻击事件登上新闻头条。这些攻击可能会带来灾难性的后果,因此保护 Web 资产和流量不落入黑客之手变得越来越重要。
作为互联网流量的主要类型之一,浏览器和网站之间的 HTTP 流量必然会成为这些攻击的目标。保护 HTTP 流量免遭窃听和篡改的一种基本方法是使用传输层安全 (TLS) 协议对其进行加密。加密流量就是所谓的 “HTTPS 流量”,其中 “S” 代表 “安全(secure)”,而在大多数情况下,普通 “HTTP” 用于同时指代这两种流量类型。
您可以通过查看 URL 来判断网站是否支持加密:
-
以 https:// 开头的 URL 使用加密
-
以 http:// 开头的 URL 没有加密
使用加密时,许多浏览器还会在地址栏的左端显示挂锁图标。
注:TLS 的前身安全套接字层 (SSL) 现已弃用,尽管存在安全漏洞,但仍被广泛使用。同样,术语 SSL(或 SSL/TLS)通常用于指代 HTTP 流量的加密,即使在实际使用 TLS 时也是如此。
SSL/TLS 和 NGINX
为了帮助您快速了解 NGINX 中的 SSL/TLS 加密,我们来看一些指令。HTTPS 的基本 NGINX 配置非常简单:
代码详情可以通过 NGINX社区官网 查看
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 内容。
NGINX 唯一中文官方社区 ,尽在 nginx.org.cn
更多 NGINX 相关的技术干货、互动问答、系列课程、活动资源: 开源社区官网 | 微信公众号