BLOG | NGINX

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

NGINX-Part-of-F5-horiz-black-type-RGB
Robert Haynes 缩略图
Robert Haynes
Published January 26, 2023

网络攻击者肆无忌惮、作恶多端,几乎每天都有网络入侵、数据窃取或勒索软件攻击事件登上新闻头条。这些攻击可能会带来灾难性的后果,因此保护 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_certificatessl_certificate_key 指令指定了存储该域的 TLS 证书和密钥的文件。ssl_protocolsssl_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 天免费试用版,或与我们联系以讨论您的用例


"This blog post may reference products that are no longer available and/or no longer supported. For the most current information about available F5 NGINX products and solutions, explore our NGINX product family. NGINX is now part of F5. All previous NGINX.com links will redirect to similar NGINX content on F5.com."