NGINX Full Version

基础知识回顾:借助 SSL/TLS 和 NGINX 进行 Web 流量加密

网络攻击者肆无忌惮、作恶多端,几乎每天都有网络入侵、数据窃取或勒索软件攻击事件登上新闻头条。这些攻击可能会带来灾难性的后果,因此保护 Web 资产和流量不落入黑客之手变得越来越重要。

作为互联网流量的主要类型之一,浏览器和网站之间的 HTTP 流量必然会成为这些攻击的目标。保护 HTTP 流量免遭窃听和篡改的一种基本方法是使用传输层安全 (TLS) 协议对其进行加密。加密流量就是所谓的“HTTPS 流量”,其中“S”代表“安全(secure)”,而在大多数情况下,普通“HTTPP”用于同时指代这两种流量类型。

您可以通过查看 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_certificatessl_certificate_key 指令指定了存储该域的 TLS 证书和密钥的文件。ssl_protocolsssl_ciphers 指令分别指定了此 NGINX 虚拟服务器支持的 SSL/TLS 版本和密码套件(加密算法)。有了这些指令,NGINX 就可以与客户端协商安全连接,并提供经过证书验证的 HTTPS 内容。

 

观看网络研讨会

描述如何使用 HTTPS 指令是一回事,但理解证书、密钥和密码背后的概念则要复杂得多。如欲深入浅出地了解流量加密,请观看我们免费的点播网络研讨会 — NGINX 101:使用 SSL/TLS 和 NGINX 进行 Web 流量加密

在网络研讨会中,您可以深入了解 Web 流量加密并学习:

如果您对 NGINX 开源版感兴趣,但仍然有疑问,请添加小 N 助手(微信号:nginxoss)加入 NGINX 官方社区群,与社区的小伙伴们进行互动答疑!如欲试用 NGINX Plus,请立即下载 30 天免费试用版,或与我们联系以讨论您的用例