温馨提示×

Nginx SSL如何配置ALPN

小樊
40
2025-11-19 09:04:23
栏目: 云计算

在Nginx中配置ALPN(Application-Layer Protocol Negotiation)可以让你在SSL/TLS握手过程中协商使用HTTP/2。以下是配置Nginx以支持ALPN的步骤:

  1. 安装Nginx: 确保你已经安装了Nginx。如果还没有安装,可以使用包管理器进行安装。例如,在Ubuntu上可以使用以下命令:

    sudo apt update
    sudo apt install nginx
    
  2. 获取SSL证书: 你需要一个SSL证书。你可以从Let’s Encrypt免费获取,或者购买一个商业证书。

  3. 配置Nginx: 编辑Nginx配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/default。以下是一个示例配置:

    server {
        listen 443 ssl http2;
        server_name example.com;
    
        ssl_certificate /path/to/your/fullchain.pem;
        ssl_certificate_key /path/to/your/privkey.pem;
    
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
    
        # ALPN配置
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
        ssl_session_tickets off;
    
        location / {
            root /var/www/html;
            index index.html index.htm;
        }
    
        # 其他配置...
    }
    

    在这个配置中:

    • listen 443 ssl http2; 表示监听443端口,并启用SSL和HTTP/2。
    • ssl_certificatessl_certificate_key 指定了SSL证书和私钥的路径。
    • ssl_protocols TLSv1.2 TLSv1.3; 指定了支持的TLS版本。
    • ssl_ciphers HIGH:!aNULL:!MD5; 指定了加密套件。
    • ssl_prefer_server_ciphers on; 表示优先使用服务器端的加密套件。
  4. 启用HTTP/2: 在Nginx 1.9.5及以上版本中,HTTP/2是默认启用的,只要你在listen指令中指定了http2。如果你使用的是较旧的版本,可能需要手动启用HTTP/2。

  5. 重启Nginx: 保存配置文件并重启Nginx以应用更改:

    sudo systemctl restart nginx
    
  6. 验证配置: 你可以使用浏览器访问你的网站,并检查是否成功启用了HTTP/2。你也可以使用命令行工具如curl来验证:

    curl -I --http2 https://example.com
    

    如果返回的HTTP头中包含HTTP/2,则表示配置成功。

通过以上步骤,你可以在Nginx中配置ALPN以支持HTTP/2。

0