LNMP 环境下给站点配置免费证书加密访问通道,最直接的办法就是用 Let’s Encrypt 配合 LNMP 自带的 ssl 命令或 acme.sh,通常几分钟内就能把 HTTP 升级成 HTTPS。
为什么 LNMP 环境配置 HTTPS 免费证书成为个人站长首选
你的站点如果还在用 HTTP 明文传输,等于用户提交的登录密码、评论内容、cookie 都在网络上裸奔,主流浏览器早已把 HTTP 页面标记为不安全,访客看到地址栏的警告,信任感会直接下降,搜索引擎对 HTTPS 站点的收录权重也有倾斜,同等内容下加密站点更容易获得靠前排名。
免费证书的普及改变了成本结构,以前一张证书动辄几百上千块,个人博客和小型企业站根本扛不住,Let’s Encrypt、ZeroSSL 等机构提供免费 DV 证书,配合 LNMP 的自动化工具,几乎零成本拿到绿色锁标,行业共识认为,个人站点使用自动续期是防止证书过期的有效手段。
哪些场景适合用免费证书
- 个人博客、技术笔记、作品集网站
- 小型企业展示站、外贸独立站
- 后台管理面板、测试环境
- 不涉及在线交易的资讯类站点
如果站点牵扯电商支付、金融账户或政务数据,免费证书在验证级别和赔付保障上就不够用了,建议考虑付费 OV/EV 证书。
免费 SSL 证书和付费 SSL 证书区别有多大
“免费 SSL 证书和付费 SSL 证书区别”这个问题,很多新手会误以为加密强度不同,业内专家指出,免费证书和付费证书在加密传输层面没有本质区别,两者的核心差异在验证深度、保障机制和适用范围。
| 对比项 | 免费 SSL 证书 | 付费 SSL 证书 |
|---|---|---|
| 验证级别 | 仅域名验证 DV | DV / 企业 OV / 增强 EV |
| 单次有效期 | 90 天 | 1 年起 |
| 自动续期 | 需配合工具 | 部分提供托管续期 |
| 技术支持 | 社区文档为主 | 厂家客服一对一 |
| 兼容性 | 主流浏览器均支持 | 覆盖老旧设备更全面 |
| 赔付保障 | 无 | 多数有保险赔付 |
| 典型场景 | 个人站、内容站 | 电商、银行、政务平台 |
简单说,个人站长做 LNMP 站点,免费 DV 证书完全够用,遇到需要更高信任背书时再升级付费证书,不必一上来就花钱。
Let’s Encrypt LNMP 自动续期配置步骤
LNMP 一键包自带 lnmp ssl add 命令,已经把证书申请、安装、续期打包好了,下面按实际操作路径走一遍。
前置条件
- 域名已完成 A 记录解析,指向服务器公网 IP
- 站点已通过
lnmp vhost add添加 - 服务器防火墙和安全组放行 80、443 端口
- Nginx 服务正在运行
使用 LNMP 自带命令申请免费证书
SSH 登录服务器,执行:
lnmp ssl add
系统会列出当前已添加的虚拟主机,输入要配置证书的站点名称,www.example.com,随后提示选择证书来源,输入 1 选择 Let’s Encrypt,接着输入联系邮箱,用于接收过期提醒,LNMP 会自动调用 ACME 协议完成域名验证,验证通过后证书文件会写入 /usr/local/nginx/conf/ssl/站点名/ 目录。
申请成功后,Nginx 配置会自动加上 443 端口监听和证书路径,最后按提示选择是否强制跳转 HTTPS,建议输入 y,让所有 HTTP 请求 301 跳到 HTTPS。
自动续期在哪里设置
LNMP 安装时通常会写入计划任务,执行:
crontab -l
查找包含 acme.sh 或 ssl renew 的行,多数情况下已经有一条每天凌晨执行的任务,如果没有,可以手动添加:
0 3 /usr/local/acme.sh/acme.sh --cron -d www.example.com --renew-hook "/etc/init.d/nginx reload"
手动测试续期是否正常:
/usr/local/acme.sh/acme.sh --renew -d www.example.com --force
执行后没有报错,Nginx 成功 reload,说明续期链路通畅。
国内服务器 LNMP 开启 HTTPS 的常见坑
国内服务器 LNMP 开启 HTTPS 时,有几个高频翻车点,提前避开能省不少时间。
安全组只开了 22 端口
云服务器默认安全组经常只放行 SSH 端口,Let’s Encrypt 验证时需要从公网访问 80 端口,443 端口跑 HTTPS,如果这两个端口没在安全组放行,证书申请会直接卡在验证阶段。
排查命令:
iptables -L -n
或直接在云控制台看安全组规则,确保入方向放行 TCP 80 和 TCP 443,源地址设为 0.0.0/0。
DNS 解析还没生效
刚添加的 A 记录可能需要几分钟到几小时才能全球生效,申请证书前先用 ping 或 nslookup 确认域名已经指向服务器 IP,如果使用 CDN,验证时最好暂时关闭 CDN 代理,让请求直达源站。
Nginx 配置重复监听或缺少 http2
LNMP 自带的 SSL 配置一般会处理好,但如果手动改过 Nginx 配置文件,可能出现两个 server 块同时监听 443,执行 nginx -t 检查配置语法,再 service nginx reload 重载。
申请频率触发限制
Let’s Encrypt 对同一域名的证书申请有速率限制,短期内反复失败后会被暂时拒绝签发,遇到 too many certificates already issued 提示,等几个小时再试,不要连续猛刷。
强制跳转与 HSTS 的副作用
强制跳转虽然方便,但如果证书过期或配置错误,用户会完全无法访问,建议先确保证书续期正常,再开启 HSTS,LNMP 中 HSTS 通常需要手动添加:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
配置前务必充分测试,不然旧浏览器访客会被记住跳转规则,证书出问题时连 HTTP 都回不去。
宝塔面板和 LNMP 配置 SSL 哪个更方便
“宝塔面板和 LNMP 配置 SSL 哪个更方便”是不少新手的真实疑问,客观说,两者没有绝对好坏,只看你的操作习惯。
宝塔面板的优势
- 图形化界面,点几下就能申请 Let’s Encrypt
- 自动续期任务在后台直观展示
- 证书到期前有站内提醒
- 适合不熟悉 Linux 命令的用户
LNMP 命令行的优势
- 无面板占用资源,服务器更轻量
- 命令行操作可脚本化、可版本控制
- 更适合批量管理多站点
- 没有面板本身的安全暴露面
如果你已经熟练使用 LNMP 一键包,完全没必要为了 SSL 再装一个宝塔,多一个面板就多一层维护成本和攻击面,但如果是纯小白,先上宝塔拿到证书,再慢慢学 LNMP,也是合理路径。
实操中容易被忽略的细节
- 证书文件权限要设成 600,防止同服务器其他用户读取私钥
- 证书更新后 Nginx 必须 reload,否则内存中还是旧证书
- 备份证书目录,迁移服务器时直接拷贝可减少申请次数
- 套了 CDN 的站点,CDN 侧也要配置证书,不能只配源站
- 检查站点中存在硬编码的
http://资源,混合内容会导致浏览器不显示绿锁
给 LNMP 站点套上免费证书,是成本可控、安全达标的通行做法,只要把自动续期盯紧,HTTPS 加密访问通道就能长期稳定运行。
Q&A
LNMP 配置免费证书后浏览器为什么仍提示不安全?
多数情况是页面里混入了 HTTP 资源,比如图片、CSS、JS 链接写成了 http://,打开浏览器开发者工具查看控制台的混合内容报错,把所有资源路径改成 https:// 或相对路径即可,另外检查证书是否过期、证书链是否完整、是否访问的是 www 和主域不一致的证书覆盖问题。
Let’s Encrypt LNMP 自动续期失败该怎么处理?
先确认 80 端口能从公网访问,再手动执行 acme.sh --renew -d 域名 --force 查看具体报错,检查计划任务是否被删除、服务器时间是否准确、域名 DNS 解析是否变更,修好后重新添加续期任务即可,一般不需要重新申请证书,证书过期会导致站点无法建立加密连接。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/660379.html





