欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > Nginx 配置 HTTPS 与 WSS 完整指南

Nginx 配置 HTTPS 与 WSS 完整指南

2025/4/3 6:55:38 来源:https://blog.csdn.net/weixin_40677588/article/details/146798720  浏览:    关键词:Nginx 配置 HTTPS 与 WSS 完整指南

Nginx 配置 HTTPS 与 WSS 完整指南

本教程将手把手教你如何为网站配置 HTTPS 加密访问,并通过反向代理实现安全的 WebSocket(WSS)通信。以 https://www.zhegepai.cn 域名为例,完整流程约需 30 分钟完成。


一、前置准备

1.1 域名注册(示例)

• 已注册域名:www.zhegepai.cn
• 确认域名已解析到服务器 IP
• 推荐 DNS 检查工具:dig www.zhegepai.cn 或 DNS Checker

1.2 SSL 证书获取

免费证书:推荐使用 Let’s Encrypt 通过 Certbot 工具自动签发
商业证书:阿里云/腾讯云等平台购买(示例使用)
• 最终需要两个文件:
• 证书链文件:www.zhegepai.cn.pem
• 私钥文件:www.zhegepai.cn.key


二、Nginx 核心配置

2.1 文件结构准备

# 创建证书存放目录
sudo mkdir -p /etc/nginx/ssl/
# 上传证书文件到指定位置
sudo cp www.zhegepai.cn.pem /etc/nginx/ssl/www.zhegepai.cn.pem
sudo cp www.zhegepai.cn.key /etc/nginx/ssl/www.zhegepai.cn.key

2.2 主配置文件 /etc/nginx/nginx.conf

# 用户权限配置
user nginx;
worker_processes auto;
pid /run/nginx.pid;# 动态模块加载
include /usr/share/nginx/modules/*.conf;events {worker_connections 1024;
}http {# 基础日志格式log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;# 性能优化参数sendfile            on;tcp_nopush          on;tcp_nodelay         on;keepalive_timeout   65;# HTTPS 服务器配置server {listen 443 ssl http2;server_name www.zhegepai.cn;root /var/www/EasyTools;# SSL 证书配置ssl_certificate /etc/nginx/ssl/www.zhegepai.cn.pem;ssl_certificate_key /etc/nginx/ssl/www.zhegepai.cn.key;# 安全协议配置ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305;ssl_prefer_server_ciphers on;ssl_session_cache shared:SSL:10m;ssl_session_timeout 10m;# WebSocket 代理配置location /ws {proxy_pass http://127.0.0.1:8765;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header Host $host;proxy_read_timeout 86400s;}# 安全响应头add_header Strict-Transport-Security "max-age=31536000" always;add_header X-Content-Type-Options "nosniff" always;add_header X-Frame-Options "SAMEORIGIN" always;}# HTTP 重定向配置server {listen 80;server_name www.zhegepai.cn;return 301 https://$host$request_uri;}
}

三、关键配置解析

3.1 HTTPS 强化配置

参数作用说明推荐值
ssl_protocols允许的 TLS 协议版本TLSv1.2 TLSv1.3
ssl_ciphers加密套件白名单ECDHE 系列优先
ssl_session_cache会话缓存提升性能shared:SSL:10m
add_header添加 HSTS 等安全响应头根据业务需求调整

3.2 WebSocket 反向代理

location /ws {proxy_pass http://localhost:8765; # 本地 WS 服务端口proxy_http_version 1.1;          # 必须使用 HTTP/1.1proxy_set_header Upgrade $http_upgrade; # 协议升级proxy_set_header Connection "upgrade"; # 保持长连接proxy_read_timeout 86400s;       # 24小时超时防止断开
}

四、部署与测试

4.1 服务端操作

# 语法检查
sudo nginx -t# 重载配置
sudo systemctl reload nginx# 查看运行状态
sudo systemctl status nginx

4.2 客户端测试

Https测试,浏览器打开:https://www.zhegepai.cn
在这里插入图片描述
WSS测试脚本,创建 test-wss.html

<!DOCTYPE html>
<html>
<head><title>WSS 连接测试</title>
</head>
<body><h1 id="status">测试中...</h1><script>const socket = new WebSocket('wss://www.zhegepai.cn/ws');socket.onopen = () => {document.getElementById('status').textContent = '[成功] 连接已建立: ' + socket.url;};socket.onerror = (error) => {document.getElementById('status').textContent = '[失败] 连接错误: ' + error.type;};</script>
</body>
</html>

本地双击浏览器直接打开测试:

成功输出

五、常见问题排查

5.1 证书相关错误

# 检查证书路径权限
ls -l /etc/nginx/ssl/
# 应显示 -rw-r--r-- 权限# 验证证书链完整性
openssl verify -CAfile www.zhegepai.cn.pem www.zhegepai.cn.pem

5.2 WebSocket 连接失败

# 在 location /ws 中添加调试日志
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log /var/log/nginx/ws-access.log main;

5.3 性能优化建议

  1. 启用 OCSP Stapling 减少 SSL 握手时间
  2. 配置 SSL 会话票据(tickets)提升复用率
  3. 使用 nginx -V 确认编译时启用了 HTTP/2 模块

通过本文的配置,您的网站将获得:
• 全站 HTTPS 加密传输
• 安全的 WebSocket 通信
• A+ 等级的 SSL Labs 测试评分
• 防御常见 Web 攻击的能力

实际部署时请根据业务需求调整超时时间、CSP 策略等参数。建议每 3 个月检查 SSL 证书有效期,保持服务安全稳定。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词