最近在给公司的小程序后端加 HTTPS,踩了不少坑。其实整个过程并不复杂,关键是要搞清楚几个核心步骤。如果你也正准备给自己的服务加上加密传输,下面这些经验或许能帮你少走弯路。
\n\n先搞明白 HTTPS 是怎么工作的
\nHTTPS 其实就是在 HTTP 的基础上加了一层 SSL/TLS 加密。用户访问你的网站时,数据不再是明文传输,中间人没法轻易看到内容。这对登录、支付这类敏感操作特别重要。
\p>服务器要支持 HTTPS,最核心的就是要有数字证书。这个证书就像网站的身份证,由权威机构(CA)签发,浏览器才会信任。
\n\n获取 SSL 证书
\n现在免费证书挺多,Let's Encrypt 就是最常用的。它支持自动签发和续期,适合个人项目或中小业务。你也可以从阿里云、腾讯云这些平台买付费证书,管理起来更省心。
\n\n以 Let's Encrypt 为例,用 Certbot 工具可以快速申请:
\nsudo certbot --nginx -d example.com\n\n执行这条命令后,Certbot 会自动完成域名验证,并配置好 Nginx 的 HTTPS 支持。
\n\nNginx 配置 HTTPS
\n拿到证书后,下一步是改 Nginx 配置。假设你的证书文件放在 /etc/ssl/certs/ 目录下,配置大致长这样:
server {\n listen 443 ssl;\n server_name example.com;\n\n ssl_certificate /etc/ssl/certs/example.com.crt;\n ssl_certificate_key /etc/ssl/private/example.com.key;\n\n location / {\n proxy_pass http://localhost:3000;\n proxy_set_header Host $host;\n proxy_set_header X-Real-IP $remote_addr;\n }\n}\n\nserver {\n listen 80;\n server_name example.com;\n return 301 https://$server_name$request_uri;\n}\n\n这里做了两件事:一是监听 443 端口启用 HTTPS,二是把 80 端口的请求自动跳转到 HTTPS,保证所有流量都走加密通道。
\n\n检查部署效果
\n改完配置别忘了 reload Nginx:
\nsudo nginx -s reload\n\n然后在浏览器打开你的网站,地址栏出现小锁图标就说明成功了。也可以用在线工具像 SSL Labs 的 SSL Test 检测一下安全性等级。
\n\n别忘了证书续期
\nLet's Encrypt 的证书只有 90 天有效期,但可以自动续。加个定时任务就能搞定:
\n0 0 */7 * * /usr/bin/certbot renew --quiet\n\n每七天检查一次,快过期就自动更新,基本不用人工干预。
\n\n我自己第一次配的时候忘了设自动续期,结果两周后证书过期,用户打不开页面,客服电话都快被打爆了。后来干脆写进部署文档,每次上线都顺手检查一遍。
","seo_title":"服务器端如何支持HTTPS|详细配置指南","seo_description":"手把手教你服务器端如何支持HTTPS,涵盖证书申请、Nginx配置与自动续期实战经验,保障网站数据传输安全。","keywords":"服务器支持https,https配置,ssl证书,nginx配置https,let's encrypt"}