尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Let‘s Encrypt免费证书与HTTPS配置完全指南

Let‘s Encrypt免费证书与HTTPS配置完全指南
📅 发布时间:2026/6/18 2:01:47

本文详解如何使用Let’s Encrypt获取免费SSL证书,配置Nginx/Apache实现HTTPS,以及自动续期方案。

前言

2024年了,网站还不上HTTPS?

  • 浏览器会标记为"不安全"
  • SEO排名受影响
  • 无法使用HTTP/2、HTTP/3
  • 用户数据传输有风险

以前SSL证书很贵,现在有了Let’s Encrypt,完全免费,自动续期,没有理由不用。


一、Let’s Encrypt简介

1.1 什么是Let’s Encrypt

Let’s Encrypt是一个免费、自动化、开放的证书颁发机构(CA),由非营利组织ISRG运营。

特点:

  • 完全免费
  • 自动化颁发和续期
  • 被所有主流浏览器信任
  • 单域名/泛域名都支持

1.2 证书类型

类型说明验证方式
单域名只对一个域名有效HTTP/DNS
多域名(SAN)多个域名共用一个证书HTTP/DNS
泛域名*.example.com仅DNS

1.3 验证方式

HTTP-01验证:

  • 在网站目录放置特定文件
  • Let’s Encrypt访问验证
  • 需要80端口可访问

DNS-01验证:

  • 添加特定的DNS TXT记录
  • Let’s Encrypt查询验证
  • 适合泛域名、无法开放80端口的场景

二、Certbot安装与使用

2.1 安装Certbot

# Ubuntu/Debianaptupdateaptinstallcertbot# CentOS/RHELyuminstallepel-release yuminstallcertbot# 或使用snap(推荐,版本更新)snapinstall--classic certbotln-s /snap/bin/certbot /usr/bin/certbot

2.2 获取证书(HTTP验证)

独立模式(没有Web服务器时):

# 需要80端口空闲certbot certonly --standalone -d example.com -d www.example.com

Webroot模式(已有Web服务器):

# 指定网站根目录certbot certonly --webroot -w /var/www/html -d example.com -d www.example.com

Nginx插件模式(自动配置):

# 安装插件aptinstallpython3-certbot-nginx# 自动获取证书并配置Nginxcertbot --nginx -d example.com -d www.example.com

2.3 获取证书(DNS验证)

# 泛域名证书certbot certonly --manual --preferred-challenges dns -d"*.example.com"-d example.com

执行后会提示添加DNS TXT记录:

Please deploy a DNS TXT record under the name: _acme-challenge.example.com with the following value: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

添加记录后等待DNS生效,然后继续。

2.4 证书文件说明

证书存放在/etc/letsencrypt/live/example.com/:

文件说明用途
cert.pem域名证书-
chain.pem中间证书链-
fullchain.pem完整证书链Nginx ssl_certificate
privkey.pem私钥Nginx ssl_certificate_key

三、Nginx HTTPS配置

3.1 基础配置

server { listen 80; server_name example.com www.example.com; # HTTP重定向到HTTPS return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name example.com www.example.com; # SSL证书 ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # SSL配置 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; ssl_prefer_server_ciphers on; # HSTS(可选,强制HTTPS) add_header Strict-Transport-Security "max-age=31536000" always; root /var/www/html; index index.html; location / { try_files $uri $uri/ =404; } }

3.2 安全加固配置

# /etc/nginx/conf.d/ssl.conf # SSL会话缓存 ssl_session_cache shared:SSL:10m; ssl_session_timeout 1d; ssl_session_tickets off; # 现代加密套件 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; # OCSP Stapling ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s; # DH参数(可选,增强安全性) # openssl dhparam -out /etc/nginx/dhparam.pem 2048 # ssl_dhparam /etc/nginx/dhparam.pem;

3.3 测试配置

# 测试Nginx配置nginx -t# 重载配置nginx -s reload# 测试SSLcurl-I https://example.com

四、自动续期配置

4.1 证书有效期

Let’s Encrypt证书有效期是90天,建议提前30天续期。

4.2 手动续期

# 续期所有证书certbot renew# 测试续期(不真正执行)certbot renew --dry-run

4.3 自动续期

方法1:Cron定时任务

# crontab -e03* * * certbot renew --quiet --post-hook"nginx -s reload"

方法2:Systemd Timer(推荐)

Certbot安装后通常自带timer:

# 查看timer状态systemctl status certbot.timer# 启用timersystemctlenablecertbot.timer systemctl start certbot.timer# 查看下次执行时间systemctl list-timers|grepcertbot

4.4 续期钩子

# 续期成功后执行的命令certbot renew --post-hook"systemctl reload nginx"# 或在配置文件中设置# /etc/letsencrypt/renewal/example.com.conf[renewalparams]post_hook=systemctl reload nginx

五、内网服务HTTPS

5.1 问题场景

内网服务器没有公网IP和域名,如何配置HTTPS?

5.2 方案对比

方案优点缺点
自签名证书简单浏览器警告
内网CA企业级方案配置复杂
反向代理正规证书需要公网入口
组网+DNS验证正规证书需要域名

5.3 自签名证书(临时方案)

# 生成私钥openssl genrsa -out server.key2048# 生成证书openssl req -new -x509 -key server.key -out server.crt -days365\-subj"/CN=myserver.local"# Nginx配置使用ssl_certificate /path/to/server.crt;ssl_certificate_key /path/to/server.key;

5.4 组网访问方案

如果使用组网软件(如星空组网)将内网服务器和客户端连接起来:

  1. 内网服务器通过组网获得固定的虚拟IP
  2. 用DNS验证方式获取Let’s Encrypt证书(需要有域名)
  3. 将域名解析到组网的虚拟IP
  4. 客户端通过域名+HTTPS访问

这样既有正规证书,又不需要公网暴露服务器。


六、常见问题

6.1 验证失败

Challenge failed for domain example.com

排查:

  1. 确认80端口可访问:curl http://example.com/.well-known/acme-challenge/test
  2. 检查防火墙
  3. 检查DNS解析是否正确

6.2 速率限制

Let’s Encrypt有速率限制:

  • 每个域名每周50个证书
  • 每个IP每小时10个失败验证

解决:等待限制解除,或使用测试环境:

certbot certonly --staging -d example.com

6.3 证书续期失败

# 查看续期日志cat/var/log/letsencrypt/letsencrypt.log# 常见原因:# 1. 80端口被占用# 2. 域名DNS变更# 3. 防火墙规则变更

七、其他ACME客户端

除了Certbot,还有其他Let’s Encrypt客户端:

客户端特点适用场景
acme.sh纯Shell实现,轻量无Python环境
Caddy内置自动HTTPS简单场景
Traefik云原生网关K8s环境

7.1 acme.sh示例

# 安装curlhttps://get.acme.sh|sh# 获取证书acme.sh --issue -d example.com -w /var/www/html# 安装证书到Nginxacme.sh --install-cert -d example.com\--key-file /etc/nginx/ssl/example.com.key\--fullchain-file /etc/nginx/ssl/example.com.crt\--reloadcmd"nginx -s reload"

八、总结

Let’s Encrypt + HTTPS配置要点:

  1. 选择验证方式:有80端口用HTTP验证,否则用DNS验证
  2. 选择客户端:Certbot最通用,acme.sh最轻量
  3. 配置自动续期:证书90天过期,必须自动续期
  4. 安全加固:使用TLS1.2+,现代加密套件,开启HSTS
  5. 内网服务:可以用组网+DNS验证获取正规证书

参考资料

  1. Let’s Encrypt官方文档:https://letsencrypt.org/docs/
  2. Certbot文档:https://certbot.eff.org/docs/
  3. Mozilla SSL Configuration Generator:https://ssl-config.mozilla.org/

💡建议:所有对外服务都应该使用HTTPS,Let’s Encrypt让这件事变得零成本。

相关新闻

  • 2025年年终中国检验检测机构推荐:基于权威资质与多领域服务能力的10家高可靠性机构盘点 - 十大品牌推荐
  • Linux性能监控工具全家桶一文掌握系统状态
  • Wan2.1-I2V图生视频模型完整教程:从零开始掌握动态内容生成

最新新闻

  • 避雷!重庆日语学习者挑选培训机构看资质存证 - 晚香时候
  • 上海汽车音响改装首选 | 音乐人生:20年专业积淀,上海音响改装标杆品牌 - 音乐人生汽车音响
  • 5.18冲刺
  • 2026吸水棒选型指南:代表性源头厂家解析 满足多场景合规需求 - 资讯纵览
  • 破解湘潭实木衣柜定制痛点:五真原木定制方法论如何实现健康高品质落地? - 资讯纵览
  • Zotero Actions Tags:智能自动化插件让文献管理效率提升300%

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号