为什么需要在服务器端启用HTTPS
现在打开一个没有小锁图标的网站,浏览器可能会直接提示“不安全”。尤其是当你让用户输入账号密码、手机号时,明文传输等于把数据摊在大街上。HTTPS 不只是让地址栏多一把锁,它通过加密通信,防止中间人窃听或篡改内容,是现代网站的基本配置。
获取并配置SSL证书
HTTPS 的核心是 SSL/TLS 证书。你可以从权威机构(如 Let's Encrypt)免费申请,也可以购买商业证书。以 Nginx 为例,拿到证书文件后,通常会得到两个文件:一个是证书文件(如 site.crt),另一个是私钥文件(如 site.key)。
将这两个文件上传到服务器的某个目录,比如 /etc/nginx/ssl/,然后修改 Nginx 配置:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/site.crt;
ssl_certificate_key /etc/nginx/ssl/site.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
root /var/www/html;
index index.html;
}强制跳转到HTTPS
虽然已经支持了 HTTPS,但用户可能还是习惯输入 http://。为了避免他们误用不安全连接,可以设置自动跳转:
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}这样无论用户怎么输入,都会被引导到加密通道。
验证配置是否生效
修改完配置后别忘了测试。在命令行运行 nginx -t 检查语法,没问题就重启服务。然后打开浏览器访问你的网站,看是否自动跳转 HTTPS,地址栏有没有锁图标。也可以用在线工具如 SSL Labs 的检测服务,查看证书链是否完整、协议是否安全。
常见问题注意点
证书过期是最常见的故障。Let's Encrypt 的证书只有90天有效期,建议配合 certbot 自动续期。如果忘记更新,用户会看到“您的连接不是私密连接”的警告,直接影响信任度。
另外,确保私钥文件权限设为 600,避免被其他用户读取。不要把证书和私钥上传到代码仓库,哪怕是私有仓库也不推荐。
有些老系统或内网服务升级 HTTPS 时,客户端可能不支持新协议。这时候可以适当保留 TLSv1.2,但要避免使用弱加密套件。