智睿享
白蓝主题五 · 清爽阅读
首页  > 日常经验

服务器端如何支持HTTPS(详细解析)

{"title":"服务器端如何支持HTTPS","content":"

最近在给公司的小程序后端加 HTTPS,踩了不少坑。其实整个过程并不复杂,关键是要搞清楚几个核心步骤。如果你也正准备给自己的服务加上加密传输,下面这些经验或许能帮你少走弯路。

\n\n

先搞明白 HTTPS 是怎么工作的

\n

HTTPS 其实就是在 HTTP 的基础上加了一层 SSL/TLS 加密。用户访问你的网站时,数据不再是明文传输,中间人没法轻易看到内容。这对登录、支付这类敏感操作特别重要。

\p>

服务器要支持 HTTPS,最核心的就是要有数字证书。这个证书就像网站的身份证,由权威机构(CA)签发,浏览器才会信任。

\n\n

获取 SSL 证书

\n

现在免费证书挺多,Let's Encrypt 就是最常用的。它支持自动签发和续期,适合个人项目或中小业务。你也可以从阿里云、腾讯云这些平台买付费证书,管理起来更省心。

\n\n

以 Let's Encrypt 为例,用 Certbot 工具可以快速申请:

\n
sudo certbot --nginx -d example.com
\n\n

执行这条命令后,Certbot 会自动完成域名验证,并配置好 Nginx 的 HTTPS 支持。

\n\n

Nginx 配置 HTTPS

\n

拿到证书后,下一步是改 Nginx 配置。假设你的证书文件放在 /etc/ssl/certs/ 目录下,配置大致长这样:

\n
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:

\n
sudo nginx -s reload
\n\n

然后在浏览器打开你的网站,地址栏出现小锁图标就说明成功了。也可以用在线工具像 SSL Labs 的 SSL Test 检测一下安全性等级。

\n\n

别忘了证书续期

\n

Let's Encrypt 的证书只有 90 天有效期,但可以自动续。加个定时任务就能搞定:

\n
0 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"}