为什么你的网站需要SSL证书
打开浏览器,输入自己搭建的博客或后台管理地址,地址栏左边跳出一个‘不安全’的提示,这感觉挺尴尬的。特别是让同事或客户访问时,人家第一眼看到的就是红色警告。其实解决办法很简单——做服务配置SSL证书配置,给网站套上一层‘防护衣’。
SSL证书的作用就是加密客户端和服务器之间的数据传输。比如用户在你网站填了手机号、登录密码,没有SSL,这些信息在网络中是‘裸奔’的。加上证书后,就算被截获,别人也看不懂内容。
获取SSL证书的常见方式
现在大多数个人和中小项目都会选择免费证书。Let's Encrypt 是最常用的免费证书提供商,有效期90天,支持自动续签。你可以用 Certbot 工具一键申请,它会自动完成域名验证和证书生成。
如果你用的是阿里云、腾讯云这类平台,也可以在控制台直接申请免费的DV证书,下载后手动部署到服务器。这种方式适合不想折腾命令行的朋友。
Nginx 服务配置SSL证书配置示例
假设你已经拿到了证书文件,通常会有两个:一个是 your_domain.crt,另一个是 your_domain.key。把它们放到服务器的 /etc/nginx/ssl/ 目录下。
接着修改 Nginx 配置文件,常见路径是 /etc/nginx/sites-available/default 或单独的站点配置:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 80;
server_name example.com;
return 301 https://$server_name$request_uri;
}这段配置做了两件事:一是让443端口启用HTTPS,加载证书;二是把80端口的HTTP请求自动跳转到HTTPS,保证用户无论怎么输入都能走加密连接。
别忘了重启服务
改完配置别急着测试,先检查语法有没有错:
nginx -t没问题后再重启:
systemctl reload nginx刷新网页,地址栏出现小绿锁,说明服务配置SSL证书配置成功了。如果打不开,记得去防火墙看看是否放行了443端口。
定时任务自动续签
免费证书三个月就过期,但可以设置定时任务自动更新。比如用 cron 每周检查一次:
0 0 * * 0 /usr/bin/certbot renew --quiet只要域名解析不变,这个命令会在证书快到期时自动续上,省心又可靠。
服务配置SSL证书配置看起来有点技术门槛,其实一步步来,半小时就能搞定。加了证书,不只是为了那个小绿锁,更是对访问者的一份尊重和保护。